Complete list of all webhook events with payload examples.

Events

Event Format

All webhook payloads follow this structure:

json
{
  "event": "transaction.confirmed",
  "timestamp": "2026-05-31T14:00:05.000Z",
  "data": {
    "transactionUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "transactionHash": "0xabc123def456...",
    "transactionType": "BAAS_EXECUTE",
    "transactionStatus": "CONFIRMED",
    "walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
    "externalUserId": "user_alice_001",
    "externalUserLabel": "Alice Smith",
    "details": {}
  },
  "signature": "sha256=abc123def456..."
}

Transaction Events

transaction.confirmed

The transaction was confirmed on-chain. This is the most important event -- the operation actually happened.

transaction.approved

The user approved a transaction that required verification (passkey signing). The transaction was submitted on-chain.

transaction.failed

The transaction failed (e.g. contract revert, execution error).

transaction.rejected

The user rejected a transaction that required verification.

Test Event

webhook.test -- Sent when you test your webhook from the dashboard. Contains placeholder data.

Complete Event List

EventDescription
transaction.confirmedTransaction confirmed on-chain
transaction.approvedUser approved verification, transaction submitted
transaction.failedTransaction failed (execution error or contract revert)
transaction.rejectedUser rejected verification
webhook.testTest event from the dashboard

Payload Data Fields

FieldTypeDescription
transactionUuidstringUnique transaction identifier
transactionHashstring | nullOn-chain transaction hash (null if not yet submitted)
transactionTypestringType of transaction (e.g. BAAS_EXECUTE)
transactionStatusstringCurrent status (e.g. CONFIRMED, FAILED)
walletAddressstringSmart wallet address
externalUserIdstring | nullYour internal user ID (if set when creating the wallet)
externalUserLabelstring | nullYour internal user display name
detailsobjectAdditional event-specific details