Twenty address bytes occupy the lower-order part of a word.
LET’S PICTURE IT
A fixed-size address fits into a wider envelope with blank space before it.
SEE IT FOR YOURSELF
Build a transfer call from typed fieldsStep 1 / 4
The standard transfer interface takes an address and a raw integer amount. This diagram uses address one and amount one hundred.
The standard transfer interface takes an address and a raw integer amount. This diagram uses address one and amount one hundred.Keccak-256 of the canonical signature supplies the first four bytes. The transfer selector is a9059cbb.An address is twenty bytes. Standard ABI encoding adds twelve zero bytes on the left to fill one thirty-two-byte word.The integer one hundred is hex 64, left-padded in word one. Selector plus two words produces sixty-eight bytes of standard calldata.
Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.
Count the original bytes
An Ethereum address is twenty bytes, commonly displayed as forty hex digits after 0x. Standard ABI encoding gives the address a thirty-two-byte slot.
Add twelve leading bytes
The remaining twelve bytes are zeros on the left. There are twenty-four leading zero hex digits before the forty address digits.
Checksum is display information
Mixed-case EIP-55 letters do not alter the encoded address bytes. A valid checksum helps with formatting mistakes but does not identify the recipient’s honesty or network deployment.
Distinguish bytes20
A fixed bytes20 value has a different ABI alignment rule from address. Two values containing similar twenty-byte content are not interchangeable without their type context.
Follow the bytes
types: address
values: ["0x0000000000000000000000000000000000000001"]
no function selector prefix
word 0 · argument offset 0 bytes
0x0000000000000000000000000000000000000000000000000000000000000001