DEVELOPER LAB · RUNS IN YOUR BROWSER

ABI encoder

Give a function its arguments. See the bytes come together.

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 abi encoder

Encode typed function arguments into Ethereum calldata. Try common ERC-20 functions, dynamic strings, or provide a custom Solidity function declaration and JSON arguments. 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 abi: the contract’s interface for the meaning and limits of the calculation.