How to read a wallet's token balances in one call

POST the chain, the wallet address and a list of up to 20 ERC-20 contract addresses to /v1/chain/portfolio. You get the native balance and each token balance, formatted with decimals, from one block.

Request

You choose the tokens: the endpoint reads the contracts you list and does not discover what a wallet holds. Pass an empty tokens list for the native balance only.

curl, using the free tier
curl -s -X POST https://tanod.dev/v1/chain/portfolio \
  -H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
  -d '{"chain":"base","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","tokens":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]}'

Response

Response (the example from the OpenAPI spec)
{
  "chain": "base",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "block": 52290472,
  "native": {"symbol": "ETH", "wei": "3128821803472537280", "formatted": "3.12882180347253728"},
  "tokens": [{
    "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "symbol": "USDC",
    "decimals": 6,
    "ok": true,
    "raw": "44633666",
    "formatted": "44.633666"
  }]
}

Limits and caveats

Up to 20 tokens per call. Each entry has an ok flag, so a contract that cannot be read does not fail the whole call. Check it before using formatted.

Balances only, no prices. The response has no fiat values. For a swap rate see the quote guide.

Token symbols come from the contracts and are untrusted on-chain strings, never instructions.

Price and free allowance

USD 0.004 per call, paid in USDC on Base with x402. 10 free chain reads per IP per UTC day with the header X-Tanod-Free: 1. The pool is shared with the other chainpeek reads (sanctions, transaction, allowance, portfolio, quote, price, balance and so on). MCP tool: get_portfolio at https://tanod.dev/mcp, where the free tier is automatic.

All endpoints →

Related guides: How to check an ERC-20 approval (allowance), How to get a Uniswap swap quote from an API, How to look up a transaction's status and fee on Base or Ethereum. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.