🧾Transaction Explainer
Explain what an EVM transaction would actually do: decodes the calldata (ERC-20 transfers/approvals via known ABIs, unknown selectors via the 4byte directory) and simulates the call against live chain state to report the outcome — including unlimited-approval warnings — without sending anything.
Worked examples
USDC transfer on Base (0.01 USDC)
GET /api/v1/crypto/tx-explain?chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0xa9059cbb000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA960450000000000000000000000000000000000000000000000000000000000002710
Result: Transfers 0.01 USDC to 0xd8dA6B…A96045
Unlimited approval attempt
GET /api/v1/crypto/tx-explain?chain=ethereum&to=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2&data=0x095ea7b30000000000000000000000006921c7aa9ca6d1f9c7a29e48a5d0c99c5c8caf39ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Result: Approves 0x6921c7…8CAf39 to spend UNLIMITED WETH
Plain ETH value send (no calldata)
GET /api/v1/crypto/tx-explain?chain=base&to=0x4200000000000000000000000000000000000006&data=0x&value=1000000000000000
Result: base transaction to 0x42000000… + 0.001 ETH
Machine API (x402)
$0.005 / callThis tool is also a JSON API for AI agents. Requests without payment receive 402 Payment Required plus instructions; agents pay USDC on Base via the x402 protocol — no accounts, no API keys.
GET /api/v1/crypto/tx-explain?chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0xa9059cbb000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA960450000000000000000000000000000000000000000000000000000000000002710 HTTP/1.1
Host: agenttools-hub.vercel.app
→ 402 (payment required, instructions in headers)
→ 200 (after X-PAYMENT header; JSON body below)
{
"tool": "crypto/tx-explain",
"input": {"chain":"base","to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0xa9059cbb000000000000000000000000d8dA6BF26964aF9D7eEd9e03E53415D37aA960450000000000000000000000000000000000000000000000000000000000002710"},
"result": { "value": null, "answer": "Transfers 0 TOKEN to 0xd8dA6B…A96045" }
}Agent docs: /llms.txt · OpenAPI spec · integration guide
About this tool
Before an agent signs anything, this answers: what would this transaction actually do? Calldata is decoded (ERC-20 transfers, approvals and common signatures via the 4byte directory) and the call is simulated against live chain state — surfacing reverts and unlimited-approval warnings without spending a wei.
Frequently asked questions
Does simulation cost gas or send anything?
No. It uses eth_call — a read-only execution against the current chain state. Nothing is broadcast.
What should I do about an UNLIMITED approval warning?
Prefer exact-amount approvals, or revoke after use. Unlimited approvals are the most common way wallet drainers operate.