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 thepage 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:- JavaScript
- Python
- cURL
Include NFTs in results
Get both tokens and NFTs in a single request withshowNfts=true:
- JavaScript
- Python
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.5means 1.5 SOL and1000.5means 1000.5 USDC. No lamport conversion is needed. This endpoint does not expose a rawamountRawfield; if you need the exact integer value, derive it asMath.round(balance * 10 ** decimals).decimals: provided for reference only.pricePerToken/usdValue:nullfor 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’susdValue.tokenProgram: which token standard each token uses —spl-token(legacy SPL Token) ortoken-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 thepage parameter and pagination.hasMore:
Best practices
- Filter zero balances for a cleaner UI. Use
showZeroBalance=falseto hide tokens the wallet no longer holds. - Include NFTs only when needed. NFTs are excluded by default for performance; set
showNfts=trueonly when displaying them. - Handle missing price data. Always check whether
pricePerTokenandusdValuearenullbefore 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.