Cross-chain Token Balance
onchain_cross_chain_balancesThe same token's balance for one address across multiple EVM chains, in a single call.
USDC (and similar assets) has a DIFFERENT contract address on every chain; checking a wallet's total position means resolving each chain's canonical address and querying it separately. This does that and sums the total, so a multi-chain treasury view does not require N separate calls.
Supported chains: base, ethereum, optimism, arbitrum, polygon. Supported tokens: USDC (more may be added over time).
When to use: totaling a stablecoin position spread across chains, treasury reporting for a multi-chain operation, checking where a wallet's funds actually sit.
When NOT to use: you only care about one chain (use onchain_token_balances, which is cheaper), or a token not in the supported set.
Args:
address (string, required): the wallet address to check.
token (string, optional, default "USDC"): which token to check across chains.
chains (string[], optional): which chains to include. Defaults to all five supported chains.
Returns structuredContent: { "address": "0x...", "token": { "symbol": "USDC", "decimals": 6 }, "totalBalance": "1234.56", "chains": [ { "chain": "base", "chainId": 8453, "raw": "1000000000", "balance": "1000", "failed": false }, { "chain": "ethereum", "chainId": 1, "raw": "234560000", "balance": "234.56", "failed": false } ] }
A chain that could not be read reports failed: true with null balances rather than a misleading 0; if every chain fails the call errors and is not billed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | Which token to check. Defaults to "USDC". | USDC |
| chains | No | Which chains to include. Defaults to all five supported chains. | |
| address | Yes | Wallet address to check (0x + 40 hex). |