DEVELOPER LAB · RUNS IN YOUR BROWSER

Calldata decoder

Separate the selector, inspect the words, follow the offsets.

Use decimal strings for large integers. Decoding requires the correct interface. No contract or network is queried.

HOW THE CONCEPT WORKS · SEPARATE TEACHING EXAMPLE
Build a transfer call from typed fieldsStep 1 / 4
Build a transfer call from typed fieldstransfer(address,uint256)Recipient: 0x0000…0001Raw amount: 100Diagram labels abbreviate addresses; the lab shows full bytes4-byte selectora9059cbbEach box is one byte; this prefix is not a 32-byte wordWord 0 · recipient address12 zero bytes20 address bytes000…0001Left padding preserves the lower-order address valueSelector4 bytesa9059cbbAddress32 bytesword 0Amount32 bytesword 1 → 0x644 + 32 + 32 = 68 bytesThe integer does not contain token decimals or market price

The standard transfer interface takes an address and a raw integer amount. This diagram uses address one and amount one hundred.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

How to use this calldata decoder

Decode Ethereum function calldata with a supplied interface and inspect its selector, 32-byte argument words and decoded values. Works locally without querying signature databases. Start with the prefilled example, change an input, and run the calculation. Invalid values produce an explanation rather than a misleading result.

What the result means

These results describe your supplied inputs. They do not query a blockchain, check balances, estimate current network conditions, or submit transactions. Read trace calldata byte by byte for the meaning and limits of the calculation.