Skip to main content
Streams a wallet’s updated balance of an asset each time a transaction changes it. Subscribe on an open stream connection. See WebSocket streams for connections, frames and reconnection.

Filters

string
required
Chain slug of the wallets’ balances.
string[]
required
One or more wallet addresses on chain. For a single wallet, wallet with one address is also accepted. Each wallet uses one unit of the address limit.
To follow a wallet on multiple chains, open one subscription per chain.

Message format

Each update’s data is one wallet’s balance of one asset after a transaction, not the change in balance. It has the same row shape that Wallet balances returns. Updates for one wallet can be delivered out of order, and some can be missed during a reconnect. Keep one row per chain, wallet and asset, choosing the row with the higher blockNumber, then the higher txIndex. Two rows with equal versions come from the same transaction, so either one is correct. Rows are never retracted, even after a chain reorganization. Some changes, such as Solana rent and the fee of a failed transaction, produce no row, so a balance can lag until the wallet’s next captured change.

Initial snapshot

  1. Subscribe.
  2. Read Wallet balances with the same wallets and chains set to the subscription’s chain.
  3. Merge the REST response and the updates using the rule above.
The REST response can lag the stream by a few seconds, so a change made just before subscribing can be missing from both. Read again a few seconds after subscribing, and again after every reconnect.

Errors