ABI (Application Binary Interface)
The ABI is Ethereum’s contract calling convention: calldata is a 4-byte function selector (the Keccak-256 prefix of the function signature) followed by arguments encoded in 32-byte words — and the JSON ABI is the machine-readable description of that interface.
Anatomy of calldata
A call to transfer(address,uint256) encodes as: selector 0xa9059cbb + the address left-padded to 32 bytes + the amount as a 32-byte big-endian integer. Static types encode in place; dynamic types (strings, bytes, arrays, structs) use offsets pointing to length-prefixed data later in the payload. Signed integers sign-extend; addresses and bools left-pad.
The JSON ABI is the contract’s interface description — every function and event with its parameter names, types, and mutability — which is what wallets, explorers, and SDKs use to turn a human intent into bytes the EVM understands.
Why it matters beyond Ethereum
Understanding the ABI is table stakes for reading calldata, verifying contracts, debugging reverts, and building integrations — and the same pattern (selector + encoded args) appears wherever systems need a compact binary calling convention. Our toolkit encodes and decodes calldata, computes selectors, and validates EIP-55 addresses.
Related Standards
- •Solidity ABI specification
- •EIP-55 — mixed-case address checksum
Free Tools & Resources
Further Reading
Need help with this?
We consult and build across all of these domains — tell us what you are working on.
