Encyclopedia Ethereum · Entry 114
Contract ABIs: the interface used to encode calls
In this article
At a glance
Key facts
| Fact | Detail | Source |
|---|---|---|
| Functions | The ABI defines parameter and return types for function interfaces. | [1] |
| Events | Event declarations distinguish indexed topics from encoded data. | [1] |
| Errors | Custom error data can be decoded using its error signature and argument types. | [1] |
Translate a method call into bytes
A library combines a function selector with ABI-encoded arguments. When execution returns data, the declared return types tell the library how to interpret the bytes.
Dynamic values use offsets and lengths, while fixed-size values follow fixed encoding conventions. Human-readable names do not travel with every encoded argument.
A plausible interface can still be the wrong interface
Using an ABI from another version can mislabel selectors, misdecode data or offer functions the deployed implementation does not support. Proxy upgrades make version context particularly important.
The ABI says how a function is called, not whether its implementation is honest. A function named withdraw can still contain restrictive or dangerous logic.
A read call and a signed transaction use different paths
A tool can use eth_call to execute against a selected state without publishing a transaction. A state-changing transaction requires authorization and inclusion before its effects become part of the chain.
The same ABI can support both workflows. A simulation result is not a receipt for an executed transaction.
Direct answers
Questions people ask
Does an ABI contain private keys?
An ABI is an interface description and does not require private keys. Signing authority is separate from the schema used to encode or decode calls.
Inspect the evidence
The answer and key facts have stable claim links. These records retain the scope and qualification when reused.
An Ethereum Application Binary Interface, or ABI, describes how to encode calls and decode results, errors and events for a contract. It is an interface schema, not the executable code or a security guarantee. A correct ABI must match the contract implementation being used, including any proxy context.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.
Link to this claimFunctions: The ABI defines parameter and return types for function interfaces.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.
Link to this claimEvents: Event declarations distinguish indexed topics from encoded data.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.
Link to this claimErrors: Custom error data can be decoded using its error signature and argument types.
Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.
Link to this claimRevision history
- — First publication after primary-source research and independent automated verification.
Source register
Sources and references
Retrieval dates and locators are recorded individually.- Contract ABI SpecificationSolidity contributors
ABI encoding, selectors, event topics and event data.
Locator: Function Selector; Argument Encoding; Events; Errors; JSON · Version / scope: Solidity 0.8.30 documentation · Retrieved: 2026-10-02T17:03:42.824ZOpen source - Proxy contractsOpenZeppelin
Proxy implementation slots, delegated execution and upgrade authority.
Locator: TransparentUpgradeableProxy; UUPSUpgradeable; ERC1967Proxy · Version / scope: OpenZeppelin Contracts 5.x · Retrieved: 2026-10-02T17:03:43.024ZOpen source - Ethereum JSON-RPCethereum.org contributors
RPC response fields, transaction receipts, call simulation and log filtering.
Locator: eth_getTransactionByHash; eth_getTransactionReceipt; eth_call; eth_getLogs; eth_getCode; eth_estimateGas; eth_getBalance; eth_getStorageAt; eth_getTransactionCount; default block parameter · Retrieved: 2026-10-02T17:03:42.060ZOpen source - Ethereum accountsethereum.org contributors
Key-controlled and code-controlled accounts, balances, nonces and storage.
Locator: Account types; An account examined; Account creation · Retrieved: 2026-10-02T17:03:41.958ZOpen source
Research and drafting use AI assistance. A separate automated review checks claims against primary sources; no external expert or named human review is implied. Publication, substantive editing, source retrieval and verification are recorded separately. This version was independently checked by an automated reviewer on 2 October 2026.
Editorial method and correctionsDegrees of Satoshi editorial project. “Contract ABIs: the interface used to encode calls.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-contract-abis/