# EVM & Solana Chain Reads (Tanod) > Read EVM and Solana chains for balances, tokens, eth_call, logs, receipts, gas, blocks and ENS. A focused part of Tanod (https://tanod.dev/llms.txt covers every family), over HTTP and MCP. > > Pay per call in USDC on Base or Polygon or Solana or BNB Chain or Arbitrum with x402, or on Tempo with MPP; no account or API key. Free tier: a small daily per-IP > pool per family; over HTTP add the header `X-Tanod-Free: 1` to an unpaid call (without it every unpaid call gets the 402); over MCP > the free tier is automatic. > Every result is automated and heuristic, not an audit: findings can be false positives, and a clean result is not proof that code or a package is free of risk. > Tanod is operated by an autonomous AI agent on behalf of its owner. Scans run automatically; no person reviews individual results. ## API - [OpenAPI spec](https://chain.tanod.dev/openapi.json): machine-readable description of this family's 41 routes. - [x402 resources](https://chain.tanod.dev/.well-known/x402) - MCP: `https://tanod.dev/mcp/chain` (server `tanod-chain`); also at `https://chain.tanod.dev/mcp` on this host ## Routes - `POST https://chain.tanod.dev/v1/defi/funding` (get_perp_funding_rates_hyperliquid): Use when an agent needs what a Hyperliquid perp costs to hold, or whether funding is flipping, before sizing a trade. - `POST https://chain.tanod.dev/v1/check/address` (check_address_risk): Use when an agent is about to send funds to or call an address and wants a quick risk check first. - `POST https://chain.tanod.dev/v1/chain/ens` (resolve_ens_name): Use when an agent must turn an ENS name into an address, or an Ethereum address into its ENS name. - `POST https://chain.tanod.dev/v1/chain/calldata` (decode_calldata): Use when an agent has raw transaction calldata and needs the function and arguments it encodes. - `POST https://chain.tanod.dev/v1/chain/token` (get_token_info): Use when an agent needs an ERC-20 token's name, symbol, decimals and supply before handling its amounts. - `POST https://chain.tanod.dev/v1/chain/balance` (get_wallet_balance): Use when an agent needs the ETH or ERC-20 balance of an address on Ethereum, Base or Robinhood Chain. - `POST https://chain.tanod.dev/v1/chain/gas` (get_gas_price): Use when an agent must price or time an Ethereum, Base or Robinhood Chain transaction before sending it. - `POST https://chain.tanod.dev/v1/chain/block` (get_latest_block): Use when an agent needs the latest block number, timestamp and base fee of Ethereum, Base or Robinhood Chain. - `POST https://chain.tanod.dev/v1/chain/price` (get_token_price): Use when an agent needs an on-chain Chainlink price for ETH, BTC or a stablecoin, with its update time. - `POST https://chain.tanod.dev/v1/chain/tx` (get_transaction): Use when an agent must confirm whether a transaction succeeded and read its sender, value and fee. - `POST https://chain.tanod.dev/v1/chain/nft` (lookup_nft_owner_token_uri): Use when an agent needs the owner, token standard and metadata URI of an ERC-721 or ERC-1155 token. - `POST https://chain.tanod.dev/v1/chain/allowance` (check_erc20_allowance): Use when an agent must check how much an ERC-20 spender may take from an owner, and whether it is unlimited. - `POST https://chain.tanod.dev/v1/chain/portfolio` (get_wallet_portfolio): Use when an agent needs an address's ETH balance and up to 20 token balances in one call. - `POST https://chain.tanod.dev/v1/chain/quote` (get_swap_quote): Use when an agent needs a current Uniswap V3 swap quote on Ethereum or Base before choosing a trade. - `POST https://chain.tanod.dev/v1/sanctions` (screen_crypto_address_ofac_sanctions): Use when an agent must screen one crypto address against the US OFAC SDN list before transacting. - `POST https://chain.tanod.dev/v1/chain/block-at` (find_block_by_timestamp): Use when an agent must map a date or timestamp to the Ethereum, Base or Robinhood Chain block mined at that time. - `POST https://chain.tanod.dev/v1/chain/proxy` (detect_proxy_contract): Use when an agent must find out whether a contract is a proxy and where its implementation and admin are. - `POST https://chain.tanod.dev/v1/chain/ens-records` (get_ens_records): Use when an agent needs the text records, contenthash or other-chain addresses set on an ENS name. - `POST https://chain.tanod.dev/v1/chain/logs` (decode_transaction_event_logs): Use when an agent has a transaction hash and needs its event logs decoded into transfers, swaps or admin changes. - `POST https://chain.tanod.dev/v1/chain/candles` (get_crypto_ohlcv_price_candles): Use when an agent needs ETH or BTC price history as OHLCV candles for charting or backtesting. - `POST https://chain.tanod.dev/v1/chain/nonce` (get_account_transaction_count): Use when an agent must read an address's transaction count to set the nonce of its next transaction. - `POST https://chain.tanod.dev/v1/chain/receipt` (get_transaction_receipt_gas_status_logs_count): Use when an agent needs a mined transaction's status, gas used, fee and created contract address. - `POST https://chain.tanod.dev/v1/chain/events` (query_contract_event_logs_by_block_range): Use when an agent must list contract events such as Transfer or Approval over a block range. - `POST https://chain.tanod.dev/v1/chain/call` (call_smart_contract_read_only): Use when an agent must read a contract function's return value without sending a transaction. - `POST https://chain.tanod.dev/v1/chain/estimate-gas` (estimate_transaction_gas): Use when an agent must know how much gas a transaction needs before signing and sending it. - `POST https://chain.tanod.dev/v1/chain/storage` (read_contract_storage_slot): Use when an agent must read a raw storage slot of a contract, for example a proxy implementation slot. - `POST https://chain.tanod.dev/v1/chain/erc1155-balance` (get_erc1155_token_balance): Use when an agent needs how many units of an ERC-1155 token id an account holds. - `POST https://chain.tanod.dev/v1/chain/info` (get_blockchain_chain_id_head_age_gas_price): Use when an agent needs a health check of Ethereum, Base or Robinhood Chain: chain id, head block, head age and gas price. - `POST https://chain.tanod.dev/v1/chain/erc20-transfers` (list_erc20_token_transfers_for_address): Use when an agent needs the recent ERC-20 token transfers into and out of a wallet address, with symbols and amounts. - `POST https://chain.tanod.dev/v1/chain/block-number` (get_latest_block_number_and_age): Use when an agent needs the latest block number of Ethereum, Base or Robinhood Chain, with its timestamp and age in seconds. - `POST https://chain.tanod.dev/v1/chain/code` (get_contract_bytecode_hash_proxy_7702): Use when an agent must see if an address has contract code: size, hash, EIP-1167 clone or EIP-7702 delegation. - `POST https://chain.tanod.dev/v1/chain/total-supply` (get_erc20_total_supply): Use when an agent needs the total supply of an ERC-20 token, with its decimals and symbol. - `POST https://chain.tanod.dev/v1/chain/nft-owner` (get_erc721_owner_and_token_uri): Use when an agent needs the current owner and token URI of an ERC-721 token id. - `POST https://chain.tanod.dev/v1/solana/balance` (get_solana_balance): Use when an agent needs a Solana wallet's SOL balance before paying, funding or checking an account. - `POST https://chain.tanod.dev/v1/solana/tokens` (get_solana_token_balances): Use when an agent needs the SPL token holdings of a Solana wallet, such as its USDC or USDT balance. - `POST https://chain.tanod.dev/v1/solana/transaction` (get_solana_transaction): Use when an agent must confirm or inspect a Solana transaction by its signature. - `POST https://chain.tanod.dev/v1/solana/signatures` (list_solana_transaction_signatures): Use when an agent needs a Solana address's recent transaction history as signatures. - `POST https://chain.tanod.dev/v1/solana/account` (get_solana_account_info): Use when an agent needs a Solana account's owner program, lamports and raw data. - `POST https://chain.tanod.dev/v1/solana/token-info` (get_solana_token_mint_info): Use when an agent needs an SPL token mint's supply, decimals and authorities on Solana. - `POST https://chain.tanod.dev/v1/defi/perps` (list_perp_markets_hyperliquid): Use when an agent needs perp basis or market data on Hyperliquid: mark vs oracle premium, funding, open interest, volume. - `GET https://chain.tanod.dev/v1/gas/base` (get_base_gas_price): Use when an agent must price a Base transaction now and needs gas, base fee and priority fee, with no input.