A function identifies an action; arguments supply the details.
LET’S PICTURE IT
“Deliver” is an action. “To Leo, three boxes” supplies the information needed for that particular delivery.
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.
A function has a defined interface
A contract can expose named functions with typed parameters. A transfer action may take an address and an unsigned integer. Those types help software agree on how to encode the request.
Arguments are concrete values
In transfer(Leo, 100), the address selects a destination and the integer supplies a raw amount under the contract’s rules. The number 100 does not automatically mean 100 ETH or 100 whole tokens.
Names help humans, types shape bytes
A parameter name can explain intent, but standard ABI function signatures use the function name and canonical parameter types. Renaming a parameter alone does not create a new selector for the same canonical signature.
Inspect the encoded request
Use the ABI encoder to compare transfer(address,uint256) with approve(address,uint256). The argument shapes look similar, while the selectors request different actions. The contract still checks what each caller is permitted to do.