Wallet balance API, multi-chain

From $0.01 per successful call · failed calls are never charged · no account needed · Markdown version: /guides/wallet-balance-api.md

Native ETH balance (eth_getBalance) of any 0x wallet address on Ethereum at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use eth_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged.

When an agent wants this

Ethereum native balance $0.01

Native ETH balance (eth_getBalance) of any 0x wallet address on Ethereum at the latest block, in wei and in ETH. Use to check whether a wallet can pay gas or a transfer; for ERC-20 tokens use eth_token_balance, for all holdings at once use wallet_portfolio. A malformed address is rejected with 400, uncharged.

Inputs: address (required): 0x wallet or contract address.

Free first (25 successful calls per caller, no key):

curl "https://tools.funwords.eu/eth/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&trial=1"

With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:

curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/eth/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
curl "https://tools.funwords.eu/eth/balance?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&api_key=adt_…"

Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is eth_balance.

Example result
{
  "chain": "Ethereum",
  "chainId": 1,
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "balanceWei": "1234500000000000000",
  "balance": "1.2345",
  "symbol": "ETH",
  "block": 123456789
}

Tool page, inputs and limits

Wallet balance, USDC balance: native and USDC balances on 5 networks $0.005

Read a wallet's native coin and USDC balances on Base, Ethereum, Arbitrum, Optimism and Polygon in one call, live from each network, plus the USDC total. Use to find where a wallet's funds are before a payment or bridge; for one token on one network use <chain>_token_balance, for all tokens on Base use wallet_portfolio. A network whose nodes do not answer is listed with an error instead of failing the call.

Inputs: address (required): 0x wallet address.

Free first (25 successful calls per caller, no key):

curl "https://tools.funwords.eu/wallet/balances?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&trial=1"

With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:

curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/wallet/balances?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
curl "https://tools.funwords.eu/wallet/balances?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&api_key=adt_…"

Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is wallet_balances.

Example result
{
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "usdcTotal": "12.5",
  "networks": [
    {
      "chain": "Base",
      "chainId": 8453,
      "native": "0.0123",
      "nativeSymbol": "ETH",
      "usdc": "12.5",
      "error": null
    }
  ]
}

Tool page, inputs and limits

Wallet portfolio value: holdings valued in USD $0.005

USD value of a wallet on Base, Ethereum, Arbitrum or Optimism: native ETH plus major tokens (USDC and WETH everywhere, the common Base tokens on Base) and up to 20 tokens you add, each priced from its deepest Uniswap v3 pool, read live from the chain. Returns holdings, total and anything that could not be priced. Not a full token inventory. Use to check what a wallet is worth before trading, lending or paying.

Inputs: address (required): 0x wallet address; chain: Network: base (default), eth, arb or op; tokens: Optional extra comma-separated 0x token addresses (up to 20).

Free first (25 successful calls per caller, no key):

curl "https://tools.funwords.eu/wallet/portfolio?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&trial=1"

With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:

curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/wallet/portfolio?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
curl "https://tools.funwords.eu/wallet/portfolio?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&api_key=adt_…"

Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is wallet_portfolio.

Example result
{
  "chain": "Base",
  "chainId": 8453,
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "totalUsd": 1234.56,
  "ethUsd": 3850.12,
  "block": 37000000,
  "holdings": [
    {
      "token": "native",
      "symbol": "ETH",
      "balance": "0.25",
      "priceUsd": 3850.12,
      "valueUsd": 962.53,
      "quotedIn": "USDC"
    },
    {
      "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "symbol": "USDC",
      "balance": "272.03",
      "priceUsd": 1,
      "valueUsd": 272.03,
      "quotedIn": "USDC"
    }
  ],
  "unpriced": [],
  "tokensChecked": 9,
  "method": "Uniswap v3 spot price from the pool with the largest USDC or WETH reserve",
  "note": "Only native ETH, the listed major tokens and any tokens you pass are checked."
}

Tool page, inputs and limits

Questions

Does it include tokens?

No, native ETH only; eth_token_balance reads ERC-20 tokens and wallet_portfolio lists all holdings.

What about a bad address?

A malformed address is rejected with 400 and not charged.

How do I pay?

Each successful call costs the tool's price; failed calls are not charged. The first 25 calls are free. Then pay with card credits from $1 (the key goes in an Authorization header or as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.