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.