Skip to main content
The Wallet API is in Beta. Endpoints and response formats may change.

Overview

The Wallet Balances endpoint retrieves all token and NFT holdings for a Solana wallet — SOL, SPL tokens, Token-2022, and NFTs — with USD pricing, logos, and metadata. Results are sorted by USD value in descending order: tokens with pricing data appear first, followed by tokens without prices. The endpoint returns up to 100 tokens per request, so pagination is manual. Use the page parameter to fetch additional pages and read pagination.hasMore to know when more results are available. Each request is a single API call and costs 100 credits.
USD prices are sourced from DAS and update hourly, covering the top 10,000 tokens by market cap. pricePerToken and usdValue are null for unsupported tokens. Prices are estimates, not real-time market rates.

When to use this

Use the Wallet Balances API when you need to:
  • Display portfolio holdings: show users their complete token and NFT holdings.
  • Calculate USD values: get portfolio valuations with hourly-updated pricing.
  • Build wallet UIs: power wallet dashboards and asset lists.
  • Track token holdings: monitor specific token balances across wallets.
  • Portfolio analytics: analyze holdings distribution and concentration.
  • Tax reporting: generate holdings snapshots for tax purposes.

Quickstart

Basic balance query

Get all token balances for a wallet with USD values:

Include NFTs in results

Get both tokens and NFTs in a single request with showNfts=true:

Filter the results

Use query parameters to narrow what is returned:

Query parameters

Response format

Field notes

  • balance: human-readable amount, already adjusted for decimals — 1.5 means 1.5 SOL and 1000.5 means 1000.5 USDC. No lamport conversion is needed. This endpoint does not expose a raw amountRaw field; if you need the exact integer value, derive it as Math.round(balance * 10 ** decimals).
  • decimals: provided for reference only.
  • pricePerToken / usdValue: null for tokens without DAS pricing data (see the pricing note above).
  • totalUsdValue: total USD value for the current response page only. For full-portfolio value, paginate through all pages and sum each balance’s usdValue.
  • tokenProgram: which token standard each token uses — spl-token (legacy SPL Token) or token-2022 (Token Extensions). Both are fully supported.

Use cases

Build a portfolio dashboard

Display user holdings with USD values:

Calculate token concentration

Analyze portfolio diversification:

Track a specific token balance

Monitor a specific token across multiple wallets:

Export holdings for tax reporting

Generate a holdings snapshot:

Pagination

For wallets with more than 100 tokens, page through results with the page parameter and pagination.hasMore:
NFTs are returned on the first page only (up to 100), regardless of token pagination.

Best practices

  • Filter zero balances for a cleaner UI. Use showZeroBalance=false to hide tokens the wallet no longer holds.
  • Include NFTs only when needed. NFTs are excluded by default for performance; set showNfts=true only when displaying them.
  • Handle missing price data. Always check whether pricePerToken and usdValue are null before displaying. These are hourly estimates from DAS, not real-time market rates.
  • Cache responses. Balance data can be cached for several seconds to reduce API calls.
  • Paginate large wallets. Some wallets hold thousands of tokens; implement pagination to handle them efficiently.

Common errors

Next steps

Historical Balance

Get a token or SOL balance at a past timestamp, datetime, or slot.

Wallet API Overview

All Wallet API endpoints and shared conventions.

API Reference

Request and response schemas for wallet balances.