Crediting Logic
Why are 10 blocks considered sufficient?Based on the Ethereum 2.0 Beacon Chain finality mechanism, the probability of a transaction being reverted after 10 blocks is extremely low. The official recommendation for full confirmation is 100 blocks (15–20 minutes), but 10 blocks already satisfy the safety requirements for the vast majority of business scenarios.
Payload Example
Field Reference
| Field | Type | Description |
|---|---|---|
event_id | string | Unique event identifier |
type | string | Event type (wallets.transaction.created / updated / succeeded) |
created_timestamp | number | Event creation timestamp (milliseconds) |
data.transaction_id | string | Unique transaction identifier |
data.wallet_id | string | Merchant wallet ID |
data.type | string | Transaction type (Deposit) |
data.status | string | Transaction status (Confirming / Completed) |
data.source.addresses | array | Source addresses of the deposit (the end user’s addresses) |
data.destination.amount | string | Deposit amount |
data.destination.address | string | Destination address of the deposit (the merchant’s deposit address) |
data.chain_id | string | Chain identifier |
data.token_id | string | Token identifier |
data.confirmed_num | number | Current on-chain confirmation count |
data.confirming_threshold | number | Required minimum confirmation count |
data.transaction_hash | string | On-chain transaction hash |
data.block_info | object | Block info (block number, timestamp) |
data.timeline | array | Status change timeline |
Handling Recommendations
Idempotency handling
Idempotency handling
A single deposit may trigger multiple Webhooks (created → updated → succeeded). Use
transaction_id for idempotency to avoid double-crediting.Verify wallet_id
Verify wallet_id
After receiving an event, first verify that
data.wallet_id matches your project’s wallet. Events from other projects should be ignored.Reconciliation fallback
Reconciliation fallback
In addition to Webhooks, we recommend periodically calling the Transaction Records endpoint as a reconciliation fallback in case Webhooks are lost.