> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# BalanceUpdate

> Payload emitted by the onBalanceUpdated subscription when a wallet's token balance changes.

<ResponseField name="walletId" type="String!">Normalized wallet identifier.</ResponseField>
<ResponseField name="tokenId" type="String!">Token identifier in `<tokenAddress>:<networkId>` form.</ResponseField>
<ResponseField name="address" type="String!">Wallet address that the update belongs to.</ResponseField>
<ResponseField name="networkId" type="Int!">Chain id of the token.</ResponseField>
<ResponseField name="tokenAddress" type="String!">Contract address of the token whose balance changed.</ResponseField>
<ResponseField name="balance" type="String!">Raw on-chain balance as a decimal string (no decimal shift applied).</ResponseField>
<ResponseField name="shiftedBalance" type="Float!">Human-readable balance (`balance` shifted by the token's decimals).</ResponseField>
<ResponseField name="balanceUsd" type="String">USD value of the position at the time of the update. Null when pricing is unavailable.</ResponseField>
<ResponseField name="tokenPriceUsd" type="String">Unit price of the token in USD at the time of the update. Null when pricing is unavailable.</ResponseField>
<ResponseField name="firstHeldTimestamp" type="Int">Unix timestamp (seconds) of when this wallet first acquired the token.</ResponseField>
<ResponseField name="token" type="EnhancedToken">Full token metadata. Only populated when the client selects the `token` field. See [EnhancedToken](/api-reference/graphql/types/EnhancedToken).</ResponseField>
<ResponseField name="liquidityUsd" type="String">USD liquidity for the primary pool of the token. Null when liquidity data is unavailable.</ResponseField>
