{"uid":"cap_HVgPUfDslaB2P5Qxp4uWm","slug":"agentfund-on-chain-token-balances-bulk-996ea89c","name":"AgentFund On-Chain Token Balances (Bulk)","description":"On-chain Token Balances (bulk)","url":"https://x402.agentfund.net/x402/onchain_token_balances","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"chain":{"type":"string","description":"base | ethereum | optimism | arbitrum | polygon."},"token":{"type":"string","description":"ERC-20 contract; defaults to USDC."},"addresses":{"type":"array","items":{"type":"string"},"description":"1-500 EVM addresses."}}},"responseSchema":{"type":"json","example":{"chain":"base","token":{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6},"failed":0,"chainId":8453,"holders":[{"raw":"1234560000","address":"0x0000000000000000000000000000000000000001","balance":"1234.56"}],"queried":1,"totalBalance":"1234.56"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_iHkUUmUQU5Qg0gU_iWiR0","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches ERC-20 token balances for up to 500 EVM wallet addresses in a single call across major chains","exampleAgentPrompt":"Can you pull the USDC balances on Base for all 50 wallet addresses in my list? I want to see how much each one holds.","exampleUseCases":[{"title":"Portfolio balance snapshot across wallets","prompt":"I manage a fund with 200 investor wallet addresses — can you get me the current USDC balance on Ethereum for all of them so I can see total holdings?"},{"title":"Airdrop eligibility check","prompt":"I have a list of 300 Polygon wallet addresses and I need to check how much of this ERC-20 token at contract 0xabc123... each one holds before we do the airdrop."},{"title":"Whale wallet monitoring","prompt":"Can you fetch the current token balances on Arbitrum for these 15 known whale addresses so I can track if any of them are accumulating our token?"}],"resultDescription":"Returns a mapping of each queried EVM address to its current balance of the specified ERC-20 token (defaulting to USDC) on the chosen blockchain network, covering up to 500 addresses per call.","failureModes":["Invalid or malformed EVM address in the array returns an error or null balance for that entry","Unsupported chain identifier causes a 400-level error","Addresses array exceeding 500 entries may be rejected","Invalid ERC-20 contract address returns an error or empty result","Network congestion or RPC unavailability may cause timeouts","Payment of $0.01 USDC not fulfilled triggers 402 Payment Required"],"whenToPreferThis":"Use this endpoint when you need to batch-query ERC-20 token balances for many wallets (up to 500) in a single API call across Base, Ethereum, Optimism, Arbitrum, or Polygon. It is ideal for portfolio aggregation, airdrop analysis, whale tracking, and fund accounting where querying wallets one-by-one would be slow or expensive. Prefer this over single-address RPC calls when bulk efficiency matters.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:40:55.896Z","isFirstParty":false}