EVM Transaction Calldata Decoder

Decode Ethereum transaction calldata into function name and parameters

Ad placeholder (leaderboard)

Every Ethereum contract interaction is encoded as a hex calldata string: a four-byte function selector followed by the arguments, each padded to a 32-byte word. This decoder pulls that apart in the browser so you can see which function a transaction calls and with what values, without spinning up a node or trusting a third-party API.

How it works

The decoder splits the calldata and decodes each argument by its ABI type:

selector  = first 4 bytes (8 hex chars) of the calldata
argData   = everything after, in 32-byte (64 hex) words
address   = last 20 bytes of a word, prefixed with 0x
uint256   = the whole word parsed as a BigInt
bool      = non-zero word is true

The selector is matched against a built-in table of common ERC-20, ERC-721, and Uniswap-style functions to recover the human-readable signature. Static types are decoded inline; dynamic types such as string, bytes, and arrays appear as tail-pointer offsets because resolving them needs the full contract ABI.

Example and notes

The calldata 0xa9059cbb followed by two padded words is an ERC-20 transfer(address,uint256): the first word decodes to the recipient address and the second to the token amount in base units. Remember that a uint256 amount is in the token’s smallest unit, so an 18-decimal token shows 1000000000000000000 for one whole token. When a selector is unknown, look it up in a public 4-byte signature database, then read the raw words here against the recovered argument types.

Ad placeholder (rectangle)