Skip to main content
Wallet token balances with include=tokens: native SOL plus every non-zero SPL / Token-2022 mint, with metadata, prices, verified / spam_suspected, counted_in_position, and a separate tokens_total that never mixes with the DeFi totals. tokens is not in the default include.

WalletTokens

Returned as tokens only with include=tokens (null otherwise, or for a snapshot stored before tokens existed). It covers the whole snapshot (identical on every page) and comes from the same scan: the wallet’s SPL Token and Token-2022 accounts plus one getBalance for native SOL. Its total, tokens_total, is separate from totals and never added to it.
complete | error
Whether each read succeeded. Any error makes tokens_total.total_value_usd null.
object
Native SOL first (mint 11111111111111111111111111111111, token_program: native), then one row per mint with a non-zero balance (spl_token or token_2022), token accounts summed.
string, integer, decimal
As on a leg.
string | null
From the metadata resolver (display only).
boolean
In our verified token sources.
boolean
Unverified and either unpriced or flagged suspicious_name / symbol_collision. Never in tokens_total.
Same rules as a leg: unpriced means value_usd: null, never 0.
string | null
The position id that already counts this token (LP mint, LST or vault share, position NFT). Never in tokens_total.
boolean
Counted in tokens_total.total_value_usd.

tokens_total

tokens_total is never added to the DeFi totals, and a token already counted by a position (counted_in_position) or suspected as spam is never in tokens_total.
tokens_total (null without valuation): total_value_usd (null unless every counted holding is priced and the scan and snapshot are complete and fresh; total_null_reasons from coverage_incomplete, unpriced_tokens, indicative_tokens, stale_tokens), known_value_usd (priced + indicative), valuation_status, per-status counts, counted_in_position_count, spam_suspected_count, note.