# ChainRead Multicall Balances

> ChainRead Multicall Balances is a paid API for AI agents from chainread.imac2014ville.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-10).

Fetches native ETH or ERC-20 token balances for up to 20 addresses in a single call on Base or Ethereum mainnet

## Facts

- Endpoint: GET https://chainread.imac2014ville.workers.dev/multicall-balances?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/chainread-multicall-balances-a0a5f13d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__EmL-jYrqhKlRBBO6KUXf

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability chainread-multicall-balances-a0a5f13d
```

Example prompt: Can you check the USDC balances on Base for these three wallet addresses: 0xABC...1, 0xABC...2, and 0xABC...3, and tell me the total combined balance?

## When to prefer this

Choose this endpoint when you need to query balances for multiple addresses (up to 20) in a single API call on Base or Ethereum mainnet, avoiding multiple round-trips. It is especially useful for portfolio aggregation, airdrop snapshots, treasury monitoring, or any scenario requiring both per-address and total balances for native ETH or any ERC-20 token. Prefer over single-address lookups when batching 2–20 addresses; prefer over full indexers when you only need balance data without transaction history.

## Known failure modes

- Missing required 'addresses' query parameter returns an error
- More than 20 addresses supplied may be rejected or truncated
- Invalid ERC-20 token contract address returns an error or zero balances
- Unsupported chain value (not 'base' or 'ethereum') returns an error
- Payment failure via x402/USDC results in 402 response and no data
- RPC node unavailability may cause intermittent failures

## How this service works

Cheap EVM read utilities for AI agents on Base and Ethereum mainnet: gas and fees, blocks, balances, ERC-20 metadata, contract inspection, transaction status, ENS/Basename resolution, bulk balances. No API key: pay USDC on Base per call via x402.

## Output

Returns a JSON object with ok=true, the asset symbol and decimals, the chain queried, the count of addresses, the total aggregated balance as a string, and an array of per-address balance objects each containing the address and its individual balance.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "addresses"
     ],
     "properties": {
      "chain": {
       "enum": [
        "base",
        "ethereum"
       ],
       "type": "string",
       "description": "Chain to read (default base)"
      },
      "token": {
       "type": "string",
       "description": "Optional ERC-20 address; omit for native ETH"
      },
      "addresses": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "1-20 addresses (GET: comma-separated)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "asset": {
   "symbol": "USDC",
   "decimals": 6
  },
  "chain": "base",
  "count": 2,
  "total": "1234.5",
  "balances": [
   {
    "address": "0x4200000000000000000000000000000000000006",
    "balance": "1000"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/chainread-multicall-balances-a0a5f13d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from chainread.imac2014ville.workers.dev](https://www.zero.xyz/host/chainread.imac2014ville.workers.dev/llms.txt)
