Skip to main content
Every Assets answer is read from ledger state at read_view.as_of_ledger. Each record says how its balance was determined (source, verified), and each holdings response says in completeness whether the whole answer is verified. Read this page before you show balances as authoritative, for example in a wallet or an audit.

Sources

  • Exact: XLM, trustlines, pool shares, claimable balances, offers, and SAC balances of contract (C...) holders, live or archived. A G... account’s SAC balance is its trustline.
  • Exact for the layout: custom SEP-41 tokens that store balances in the common Balance(Address) -> i128 layout (layout: balance_i128).
  • Not listed by default: other custom tokens. They appear only with include=unverified, flagged unverified_token.

Completeness block

Every holdings response carries completeness. This live Mainnet answer holds one token with an unrecognized layout, so it is incomplete:
With include=unverified the same request simulates the candidate tokens (up to 5 per request, 1 extra credit each) and lists those with a non-zero balance as source: simulation, verified: false.

Archived balances

Contract storage that reaches the end of its lifetime moves to the hot archive, a store for expired contract entries. The holder still owns an archived balance, and the network restores it automatically the next time it is used. Archived balances keep archived: true and their amount; they are never shown as zero, and they count toward holder_count and supply.

What is not covered

  • Positions inside protocols (lending deposits, vault shares as value) are not holdings.
  • NFT contracts (SEP-50) are excluded from fungible lists.
  • Balance history starts at read_view.bootstrap_ledger. Ledgers it cannot answer exactly return 409; use a snapshot job.

Consistency with Activity

Holdings at as_of_ledger N plus Activity events from since_ledger=N+1 give no gaps and no double counting for ledger_entry and token_storage balances. The two indexes publish independently, so Assets as_of_ledger can be a few ledgers ahead of Activity.

Next