{"service":"evm-reads","version":"1.0.0","description":"Enriched, decoded EVM reads for AI agents (Ethereum mainnet): what a transaction actually does, what an address actually is, and what a wallet has been doing — verdict-shaped answers computed by us from chain data, never raw RPC passthrough.","endpoints":{"POST /tx-decode":"$0.01/call via x402 — body {tx_hash} → {summary (first), status, function_name, decoded_args, token, amount_formatted, value_eth, from/to with ENS embedded, revert_reason, attestation (chain-tip as-of)}","POST /address-verdict":"$0.01/call via x402 — body {address} → {verdict (first), summary, kind (EOA/contract), proxy detection (EIP-1967 + EIP-1167) with implementation, ERC-165/interface probes, token metadata when ERC-20-like, ENS reverse name, boundary notice}","POST /transfers":"$0.01/call via x402 — body {address, limit? (max 100), cursor?} → {summary (first), decoded ERC-20 Transfer history newest-first with formatted amounts, direction, counterparty, window + truncation disclosed, next_cursor}","GET /schema":"free — request/response schema for the paid endpoints","GET /catalog":"free — this catalog","GET /health":"free — service status + endpoint catalog","GET /criteria":"free — the published read criteria (criteria id evm/v1): what is decoded, the validation rules, caps, limitations, and prices"},"price_usd":0.01,"payment":"x402 on Solana mainnet: SOL or USDC, direct / PayAI / Dexter rails","limitations":["Ethereum mainnet only in v1.","Function names are matched against a vendored subset of Sourcify's open-data signature database (MIT) — an unmatched selector returns function_name: null with the raw selector; a name is never guessed.","Token metadata (symbol/decimals/name) comes from on-chain calls only; tokens that do not answer those calls report nulls, never off-chain database values.","ENS names are reverse-lookup claims embedded where resolvable; they are not verified identities.","Address classification is runtime introspection only — NOT a security audit and NOT a fund-safety verdict.","Transfers reads a bounded, disclosed lookback window of blocks (see window in every response); older history is not claimed.","Launch state: until the operator sets the EVM_RPC_URL secret, paid handlers answer 503 config_pending after the toll gate; free surfaces stay live."],"envelope":{"v":1,"service":"evm-reads","as_of":"2026-11-14T14:49:33.714Z","source":"evm-reads service configuration","grade":"derived","max_age_seconds":300,"changes":{"supported":false}}}