Skip to content

Blockchain Webhook API for wallet activity and token transfers

Address Webhooks send watched-wallet transfers and matching contract logs to your HTTPS receiver; verify signatures, deduplicate events and handle gaps before crediting a payment.

Events before an address’s activation block need a separate backfill; replay cannot recover them. Internal native transfers are excluded. Confirmations must stay within each chain’s GET /v1/push/chains range and count blocks, not safe or finalized labels.

Address activity delivered to your endpoint

Receive native.transfer for native value in top-level transactions, token.transfer for ERC-20, ERC-721 and ERC-1155 transfers, and log for other logs naming a watched address as the emitting contract or in topics[1]–topics[3].

GET /v1/push/chains returns the currently supported chains and their confirmation limits. Call it with your API key before selecting chains for a subscription.

Each subscription covers multiple chains with one receiving URL. Developers and AI agents have the same capacity options and prices.

Self-service

Up to 1,000,000 addresses per subscription. Available on sign-up.

Standard usage rates

Enterprise

10,000,000 / 100,000,000 addresses per subscription.

Contact us to enable

Both tiers use the same address-day and delivered-event rates.

Build around wallet and contract activity

Wallet activity

Watch wallet addresses for incoming and outgoing native value and token transfers.

Stablecoin payments

Receive ERC-20 USDT / USDC transfers, then validate the token contract, recipient and integer amount before crediting a payment.

Contract events

Watch a contract address to receive its logs, or receive logs with a watched address in topics[1]–topics[3].

NFT transfers

Handle ERC-721 and ERC-1155 token transfers with token_id and, for batch transfers, batch_index.

USDT / USDC payment monitoring

Verify, confirm and recover events

  • Verify the HMAC-SHA256 signature over `webhook-id.webhook-timestamp.raw-body` using your subscription secret before processing events; use the raw request body and do not parse JSON first.
  • Delivery is at least once. Deduplicate by event id and return 2xx after durable processing. Failed deliveries are retried while the subscription is online and events remain within the retention window.
  • Set confirmations per chain within the limits returned by GET /v1/push/chains. chain.reorg reports replaced blocks: mark old events by ref, then keep automatically redelivered canonical events and deduplicate by id.
  • Replay re-delivers stored matches within the replayable range. It does not retrieve activity from before an address or chain joined the subscription.

Pricing

The table shows CU weights and the free address allowance from GET /v1/plans. Data events are charged per delivery; automatic retries and control events are free. Replay deliveries are charged at the event rate.

Webhook push

CU weights from GET /v1/plans. Automatic retries are free.

Free addresses per account per UTC day: 1000

Free address allowance per account per UTC day, shared by all subscription groups regardless of plan. For each group, count its maximum address count while online during that day; allocate the allowance in ascending group ID order. The same address in two groups counts twice; the number of chains in a group does not multiply its address count. A group offline or deleted for the entire day contributes nothing. For each group, the remaining count after its share of the allowance is multiplied by the `push.address_day` CU weight in `method_weights`. The current configured allowance comes from the same pricing policy used for the address-day charge; it is not an account capacity limit or a separate allowance per group.

MethodBilling unitCU
push.address_dayBillable address-day33
push.historySuccessful history request25
push.logDelivered data event150
push.native_transferDelivered data event150
push.token_transferDelivered data event150
Pricing

Connect your receiver