Transaction Decoder
See what an EVM transaction actually did: call, events, token transfers, fee, finality.
Try an example: Decode an ERC-20 transfer (offline) · Custom signature with a tuple (offline)
How it works
Looks up a transaction on Ethereum, Base, Arbitrum, OP Mainnet, Polygon, Avalanche or BNB Chain straight from a public RPC node and decodes it locally: the function called (from the verified ABI on Sourcify, a built-in table or the signature database), every event log, ERC-20 token transfers with symbols and decimals, gas fee, status and finality. Works offline for raw calldata too.
- Raw data comes from public JSON-RPC nodes: eth_getTransactionByHash, eth_getTransactionReceipt, eth_getBlockByNumber (timestamp, "finalized" tag) and eth_blockNumber.
- Function: the first 4 bytes (selector) are matched against, in order, your signature/ABI, the verified ABI of the called contract on Sourcify, a built-in table of common functions, then the Sourcify signature database. The first candidate that ABI-decodes cleanly is used; other candidates are listed (selector collisions exist).
- Events: topic0 is matched the same way. Without a verified ABI, the first (topics − 1) parameters are assumed to be indexed (flagged as indexingAssumed).
- Token transfers: Transfer(address,address,uint256) logs with exactly 3 topics (ERC-20; ERC-721 has 4); symbol() and decimals() are read with eth_call.
- Fake-token check: transfers of a token whose symbol is USDT/USDC/WETH/DAI but whose contract is not the official one on that chain are flagged.
- Finality: "finalized" if the block is at or below the chain's "finalized" block tag; otherwise "unfinalized" with the confirmation count; "unknown" if the node does not support the tag.
For scripts and AI agents
- JSON API:
POST https://transactiondecoder.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://transactiondecoder.usefulweb.site/mcp· tool nametransaction_decoder
Example request
curl -s -X POST https://transactiondecoder.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"mode":"calldata","chain":"ethereum","calldata":"0xa9059cbb0000000000000000000000005aaeb6053f3e94c9b9a09f33669435e7ef1beaed00000000000000000000000000000000000000000000000000000000004c4b40"}'Related tools
- Smart Contract Upgrade Explorer – Is this smart contract upgradeable, who controls upgrades, and what changed?
- Bridge Transfer Tracker – Where is my bridged money? Finds the bridge deposit in a transaction and checks if it arrived.
- Explorer of Everything – Search transactions, contracts, domains, packages, advisories, MCP servers and websites in one box.