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
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.
Manual Acquiring
Manual acquiring reuses this callback: when a payer transfers funds to a fixed address created in the dashboard, the system pushes the event through the normal Webhook channel with exactly the same structure as online deposits. There is no new notification mechanism — merchants reuse their existing deposit-handling code as is.Project routing works the same as online:
data.wallet_id in the event is the project acquiring wallet ID (an existing field). NUSDpay provides each project’s wallet ID during onboarding; merchants route on it (e.g. forwarding only offline deposits to an ops notification group).