The wallet.activity event tracks all confirmed transaction activity for user WaaS (embedded) wallets. This enables you to monitor blockchain transactions across chains in real-time without polling or indexing.
Supported networks
EVM networks
| Network | Mainnet | Testnet | Internal transfers |
|---|
| Ethereum | ✓ | Sepolia | ✓ |
| Polygon | ✓ | Amoy | ✓ |
| Optimism | ✓ | Sepolia | ✓ |
| Base | ✓ | Sepolia | ✓ |
| Arbitrum | ✓ | Sepolia | ✓ |
| BNB Chain | ✓ | Testnet | ✗ |
| Avalanche | ✓ | Testnet | ✗ |
Internal transfers are transactions where the wallet address is involved in an internal (nested) call rather than as the direct to or from on the top-level transaction — for example, interactions routed through smart contracts, bridges, or account abstraction entry points. On networks that do not support internal transfer tracking, wallet.activity events fire only when the wallet address appears directly in the top-level transaction.
SVM networks
| Network | Mainnet | Testnet |
|---|
| Solana | ✓ | Devnet |
How it works
When a confirmed transaction involves a user’s WaaS (embedded) wallet, Dynamic sends a wallet.activity webhook event to your configured endpoint. This includes both incoming and outgoing transactions.
Registration event
When a new embedded wallet is created and the environment has on-chain activity tracking enabled, Dynamic registers the wallet address with on-chain monitoring providers. A wallet.activity.registered event is sent once this registration succeeds.
This event fires only once per wallet — not on duplicates, replays, or already-registered addresses. Use it to confirm that a wallet is actively monitored before expecting wallet.activity transaction events.
Example payload
{
"eventId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"messageId": "f0e1d2c3-b4a5-6789-0abc-def123456789",
"webhookId": "a86acea4-e050-4846-8e4f-0ae039f6e37c",
"userId": "a5914498-7a8b-4c58-b04c-9624fef2897c",
"eventName": "wallet.activity.registered",
"environmentId": "123e4567-e89b-12d3-a456-426614174000",
"environmentName": "sandbox",
"timestamp": "2025-06-09T14:30:59.210Z",
"data": {
"walletAddress": "0x3FcE1F4F28DbA209344072867134A3a7F547C7f1",
"walletId": "484e49ba-3026-4e2c-9bf0-ed98ae224833",
"userId": "a5914498-7a8b-4c58-b04c-9624fef2897c"
}
}
Use cases
- Notify users when they receive funds
- Track transaction history for compliance or analytics
- Trigger downstream workflows based on on-chain activity
- Build real-time activity feeds in your application
Getting started
To receive on-chain events:
- Set up a webhook endpoint
- Subscribe to the
wallet.activity and/or wallet.activity.registered event types
- Process incoming events in your webhook handler
See the wallet.activity event reference and wallet.activity.registered event reference for the full event payload structures.