Skip to main content
Webhooks tell your systems what happened without polling. Every state change in a wallet’s life is written to the operation ledger first and then delivered to each endpoint subscribed to it, as a signed, retried, logged HTTP request.

Register an endpoint

In the console: Developer → Webhook → Create Webhook. Provide an HTTPS URL, choose All events or a subset, add a description, and leave Enable Webhook on. Endpoints must be HTTPS; plain HTTP is refused.

Verify deliveries

Every delivery is signed with the workspace’s Ed25519 key. Fetch the public key once and verify each delivery’s signature before acting on it:
Deliveries are identified by an event ID. Treat the event ID as the idempotency key on your side: a resend carries the same ID and body with new attempt metadata.

Retries and logs

A delivery that does not receive a 2xx response within 10 seconds is retried with exponential backoff, starting at 30 seconds and capped at 15 minutes, for up to 10 attempts. Deliveries are then visible under Developer → Webhook → Webhook Logs with their status (pending, delivering, success, failed), attempt count and response code, and can be resent.

Event catalogue

Each payload carries the event type, the event ID, the workspace and the affected resource with its current state, so a consumer can act on it without a follow-up read.