# ChainRead > Cheap EVM read utilities for AI agents on Base and Ethereum mainnet: gas and USD transaction cost, blocks, balances, ERC-20 metadata, contract/proxy inspection, tx status, ENS/Basename resolution, bulk balances. From $0.001 per call in USDC on Base via x402. No API key. Base URL: https://chainread.imac2014ville.workers.dev OpenAPI: https://chainread.imac2014ville.workers.dev/openapi.json Source: https://github.com/Imac2014Ville/baselens Related: BaseLens https://baselens.imac2014ville.workers.dev, TokenGuard https://tokenguard.imac2014ville.workers.dev ## Endpoints (GET with query params, or POST with JSON body) - /gas ($0.001): Gas price, priority fee suggestion and the cost of an ETH transfer, ERC-20 transfer and DEX swap in gwei, ETH and USD (Chainlink ETH/USD). Example: /gas?chain=base - /block ($0.001): Latest or any block: hash, timestamp, age, tx count, gas utilization, base fee. Example: /block?chain=ethereum&number=latest - /balance ($0.002): Wallet balance: native ETH with USD value plus ERC-20 balances with symbol and decimals applied. Example: /balance?chain=base&address=0x4200000000000000000000000000000000000006&tokens=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - /erc20 ($0.002): ERC-20 name, symbol, decimals, total supply, owner / renounced, proxy implementation. Example: /erc20?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - /contract ($0.002): Contract or wallet? Code size, proxy detection (EIP-1967, beacon, EIP-1167), EIP-7702 delegation, well-known selectors and traits. Example: /contract?chain=ethereum&address=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 - /tx-status ($0.001): Transaction status (pending / success / failed), confirmations, gas used and fee in ETH and USD. Example: /tx-status?chain=base&hash=0x… - /resolve ($0.002): ENS (.eth) and Basename (.base.eth) to address via the on-chain registry and resolver. Example: /resolve?name=vitalik.eth - /multicall-balances ($0.005): Up to 20 addresses in one Multicall3 call: native ETH or one ERC-20 for all of them, with total. Example: /multicall-balances?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&addresses=0x4200000000000000000000000000000000000006,0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 ## Developer guides - Get an ERC-20 balance via HTTP API, no RPC key: https://chainread.imac2014ville.workers.dev/guides/erc20-balance-api-no-rpc-key - Base gas price API: what a transaction costs right now: https://chainread.imac2014ville.workers.dev/guides/base-gas-price-api - Resolve an ENS name or Basename via API: https://chainread.imac2014ville.workers.dev/guides/resolve-ens-basename-api ## How to pay Call an endpoint without payment to receive HTTP 402 with a PAYMENT-REQUIRED header (base64 JSON: scheme exact, network eip155:8453, asset USDC). Use an x402 client (@x402/fetch, x402-axios, or an MCP x402 wallet) to sign and retry. Malformed requests return 400 and lookups that fail return non-2xx, so they are not charged.