Webhooks
Register webhooks to receive compliance events via HTTP with HMAC-SHA256 signatures
Webhooks
The Oracle dispatches compliance events to registered webhook endpoints. Events are signed with HMAC-SHA256 so you can verify their authenticity.
Registration
Register a webhook to receive events:
Important: Store the
secretimmediately. It is only returned once at creation and cannot be retrieved later.
Event Types
| Event | Description |
|---|---|
transfer.executed | Transfer hook executed successfully |
transfer.blocked | Transfer rejected by compliance (allowlist, hold period, max balance) |
wallet.verified | Wallet added to allowlist |
wallet.removed | Wallet removed from allowlist |
compliance.violation | Compliance rule violated |
token.paused | Token paused by authority |
token.resumed | Token resumed by authority |
config.updated | Compliance configuration changed (tax rate, hold period, etc.) |
Use "*" in the events array to subscribe to all event types.
Delivery Format
When an event fires, the Oracle sends an HTTP POST to your registered URL:
Mint Filtering
If you registered with a mint parameter, you only receive events for that mint. Without it, you receive events for all mints the Oracle monitors.
Retry Logic
Failed deliveries are retried with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st retry | 1 second |
| 2nd retry | 4 seconds |
| 3rd retry | 16 seconds |
After 3 failed attempts, the delivery is abandoned and the webhook's failuresCount is incremented. The webhook is not automatically disabled — check failuresCount via GET /v1/webhooks to monitor health.
Signature Verification
Every delivery includes an X-Sinai-Signature header containing the HMAC-SHA256 hex digest of the request body, signed with your webhook secret.