Transaction explainer: what an EVM transaction did
Explain an EVM transaction in plain words: success or revert, sender and contract, ETH value, fee, the function called (decoded for common ERC-20, ERC-721, WETH, permit and multicall calls), and every token transfer, mint, burn and approval it emitted with amounts and symbols, plus one-line summaries. Base, Ethereum, Arbitrum, Optimism or Polygon. Use to check what a payment or contract call really did before trusting it or reporting it.
Inputs
| Name | Type | Description |
|---|---|---|
hash (required) | string | 0x transaction hash |
chain | string | Network: base (default), eth, arb, op or polygon |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/pack/tx-explain?hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/pack/tx-explain?hash=0x7d108fa131ed949c76d50caf2e7dfe25fc9903b9d276c40a0446d8afbdfe86b0&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"pack": "tx-explain",
"chain": "Base",
"hash": "0x7d10…",
"status": "success",
"from": "0x…",
"to": "0x…",
"valueEth": "0",
"feeEth": "0.0000012",
"gasUsed": "52000",
"call": {
"function": "transfer(address,uint256)",
"args": [
{
"type": "address",
"value": "0x…"
},
{
"type": "uint256",
"value": "10000000"
}
]
},
"events": [
{
"kind": "transfer",
"token": "0x8335…",
"symbol": "USDC",
"from": "0x…",
"to": "0x…",
"amount": "10"
}
],
"summary": [
"10 USDC sent from 0x1234…abcd to 0x5678…ef01"
],
"block": 123456789
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is pack_tx_explain, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp