{"tool":"erc20-balance","title":"ERC-20 balance","description":"Raw + formatted ERC-20 balanceOf for an address at any token contract (decimals read on-chain when available; common-list/18 fallback is labeled). Preflighted so you never pay during an RPC outage.","method":"POST","call":"/v1/tools/erc20-balance/call","input_schema":{"type":"object","required":["address","token_address"],"properties":{"address":{"type":"string","description":"Holder EVM address, 0x-prefixed."},"token_address":{"type":"string","description":"ERC-20 token contract address, 0x-prefixed."},"decimals":{"type":"number","description":"Token decimals override (optional; default: on-chain decimals(), else common list, else 18)."}}},"output_schema":{"type":"object","properties":{"tool":{"type":"string"},"valid":{"type":"boolean"},"address":{"type":"string"},"token_address":{"type":"string"},"balance_raw":{"type":"string"},"decimals":{"type":"number"},"decimals_source":{"type":"string"},"balance":{"type":"number"},"reason":{"type":"string"},"retryable":{"type":"boolean"},"scope":{"type":"string"}},"required":["valid","address","token_address"]},"price_usdc_floor":0.000999,"price_note":"dynamic-dutch: live quote via GET /health or the 402 challenge on POST without payment","example_request":{"input":{"address":"0xc59c85e661d34084a7769f955d17fd38254a6235","token_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}},"docs":"https://rail.akrivis.in/openapi.json","mcp":"https://rail.akrivis.in/mcp"}