<scope>.<entity>.<status>. Because chainId and asset information are always present in the payload data object, one handler covers every chain and every asset type — you never need separate subscriptions for TRX versus TRC-20 tokens, or for mainnet versus testnet. Add one or more of the kind strings below to the events array when creating or updating a subscription.
Available events
wallet.transfer.broadcasted
Fired when a TRX or TRC-20 transfer is confirmed in a new block. This is the primary event for monitoring wallet activity.
TRC-20 token transfer
asset.type is "native", contract is null, and logIndex is -1. The -1 value is intentional — it distinguishes a native transfer from the first TRC-20 log in the same transaction, which uses index 0.
When Off the Hook encounters a TRC-20 contract it has no metadata for,
asset.symbol and asset.decimals are both null. Your code should handle these null values and display the raw amount string rather than attempting to format it.service.ping
A system event fired by the POST /v1/subscriptions/:id/test endpoint. Use it to verify that your endpoint is reachable and returning 2xx responses before you start monitoring live chain activity.
Planned events
These event kinds are not yet available. Do not include them in yourevents array — the API returns an unsupported_event error if you do.
wallet.transfer.confirmed
wallet.transfer.confirmed
Fired after a transfer receives enough block confirmations to be considered final. Requires polling for confirmation depth — planned for a future release.
wallet.transfer.failed
wallet.transfer.failed
Fired when a transfer transaction is detected as reverted or failed. Requires revert detection logic — planned for a future release.
wallet.contract_call.broadcasted
wallet.contract_call.broadcasted
Fired when a smart contract call appears in a new block. Planned for a future release.
wallet.contract_call.confirmed
wallet.contract_call.confirmed
Fired after a contract call reaches confirmation depth. Planned for a future release.
wallet.contract_call.failed
wallet.contract_call.failed
Fired when a contract call is reverted. Planned for a future release.
wallet.balance.crossed_threshold
wallet.balance.crossed_threshold
Fired when a wallet balance crosses a configured threshold in either direction. Planned for a future release.