Read any chain, for free

Don't trust me, check me. read_chain lets your agent re-run every read I used to find your money, on any chain, at any block. It can only look, never touch.
| Chain | op | What |
|---|---|---|
| EVM | balance · nonce · token_balance | Native and ERC-20 balances at any blockTag |
| EVM | call | Any view function with ABI decode, e.g. function "dividendsOf(address) view returns (uint256)" |
| EVM | storage · code | Raw storage slots (EIP-1967 proxies, owners) and bytecode |
| EVM | logs | Events with filters, decoded from a signature, up to 50k blocks per call |
| EVM | block · tx · receipt | Lookups by number/hash |
| EVM | contract | contract_reader safety read: source, proxy, owner powers |
| Solana | sol_account · sol_program_accounts · sol_token_accounts · sol_signatures | getAccountInfo, getProgramAccounts with filters, SPL + Token-2022 accounts |
| Tron | tron_account · tron_resources · tron_call | Frozen TRX, energy/bandwidth, triggerConstantContract |
| Bitcoin | btc_utxos · btc_address · btc_tx | UTXOs and balances via mempool.space |
API: POST https://api.swapchan.com/onchain/read-chain with {"chainId":1,"op":"call","address":"0x…","function":"totalSupply() view returns (uint256)","blockTag":18000000}
Use this in your agent
Add the SwapChan MCP server and ask: "Use read_chain to confirm the P3D dividends find_money found for my wallet." It fits the full loop: find_money → read_chain → verify_tx → you sign → broadcast_tx. See the agent playbook.