# Tanod Chain > EVM and Solana reads: balances, tokens, eth_call, logs, receipts, gas, blocks, transactions, 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 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 40 routes. - [x402 resources](https://chain.tanod.dev/.well-known/x402) - MCP: `https://tanod.dev/mcp/chain` (server `tanod-chain`) ## Routes - `POST https://chain.tanod.dev/v1/defi/funding` (get_perp_funding_rates_hyperliquid): Get Hyperliquid perpetual funding rates, hourly and annualised (chainpeek) 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): Check address risk: risk check of a wallet or contract address before sending, Base or Ethereum (txpeek) 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): Resolve an ENS name to an address (ENS to address), or reverse ENS lookup of an address (chainpeek) 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): Decode calldata: decode EVM transaction input (calldata) (chainpeek) 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): Get token info: ERC-20 token metadata (name, symbol, decimals) on Ethereum or Base (chainpeek) 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): Get a wallet balance: native (ETH) or ERC-20 token balance of an address on Ethereum or Base (chainpeek) 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): Get the gas price: current Ethereum gas fee and base fee, also on Base or Robinhood Chain (chainpeek) 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): Get the latest block header on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get a token price: crypto price from a Chainlink oracle, with staleness (chainpeek) 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): Get a transaction: look up its status, receipt and fees on Ethereum, Base or Robinhood Chain (chainpeek) 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): Look up an NFT's owner, token URI and standard (ERC-721, ERC-1155) (chainpeek) 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): Check an ERC-20 token allowance and flag unlimited approvals (chainpeek) 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): Get a wallet portfolio: native and up to 20 ERC-20 token balances on Ethereum or Base (chainpeek) 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): Get a swap quote: Uniswap V3 spot quote for a token swap, not a firm price (chainpeek) 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` (check_ofac_sanctions): Check OFAC sanctions: is a wallet address sanctioned? Sanctions screening of one address 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): Find the block at a point in time on Ethereum, Base or Robinhood Chain (chainpeek) 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): Detect a proxy contract, its kind and implementation address (chainpeek) 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): Get ENS records: an ENS name's text records and profile, addresses, contenthash (chainpeek) 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): Decode a transaction's event logs on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get ETH or BTC OHLCV price candles from on-chain DEX swaps (chainpeek) 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): Get an account's transaction count (nonce) on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get a transaction receipt (status, gas used, fee, logs count) on Ethereum, Base or Robinhood Chain (chainpeek) 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): Query contract event logs over a block range, decoded (chainpeek) 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): Call a smart contract function read-only (eth_call) on Ethereum, Base or Robinhood Chain (chainpeek) 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): Estimate the gas of a transaction (eth_estimateGas) on Ethereum, Base or Robinhood Chain (chainpeek) 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): Read a contract storage slot (eth_getStorageAt) on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get an account's ERC-1155 token balance for a token id on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get the chain id, latest block, head age and gas price of Ethereum, Base or Robinhood Chain (chainpeek) 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): List the ERC-20 token transfers into and out of an address on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get the latest block number, timestamp and age in seconds of Ethereum, Base or Robinhood Chain (chainpeek) 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): Get the deployed bytecode size and hash of an address, with EIP-1167 and EIP-7702 detection (chainpeek) 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): Get an ERC-20 total supply with decimals and symbol on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get the owner (ownerOf) and token URI of an ERC-721 token on Ethereum, Base or Robinhood Chain (chainpeek) 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): Get a Solana balance: the SOL balance of a Solana wallet address (chainpeek) 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): Get the SPL token balances of a Solana wallet (chainpeek) 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): Get a parsed Solana transaction by its signature (chainpeek) 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): List the recent transaction signatures of a Solana address (chainpeek) 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): Get the account info of a Solana address (chainpeek) 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): Get the supply, decimals and authorities of a Solana token mint (chainpeek) 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): List Hyperliquid perpetual markets with mark, oracle, open interest and volume (chainpeek) Use when an agent needs perp basis or market data on Hyperliquid: mark vs oracle premium, funding, open interest, volume.