Skip to article
Degrees of SatoshiFollow the connections.
Degrees of Satoshi/ Encyclopedia

Encyclopedia Ethereum · Entry 110

Function selectors: the first four bytes of a contract call

Theme
Ethereum
Sources
2 cited records
Reading time
About 3 minutes
Automated verification
Substantive update
In this article

At a glance

Key facts

Key facts for Function selectors: the first four bytes of a contract call
FactDetailSource
SizeAn ABI function selector is four bytes.[1]
SignatureThe canonical signature includes parameter types, not parameter names.[1]
ReturnsReturn types are not part of the function selector.[1]
01

Types matter, argument values do not

The signature transfer(address,uint256) describes a method name and types. A particular recipient and amount belong in the arguments that follow the selector. Overloaded functions with different parameter types have different canonical signatures, though collisions remain possible.

Canonical type spelling matters: ABI hashing uses the canonical form, such as uint256 rather than an informal shorthand.

02

The destination decides what the bytes do

A contract may dispatch on the selector, use a fallback path or delegate execution through a proxy. A method-name database provides a possible interpretation, not proof that the destination implements that method honestly.

Pair the selector with the correct code, ABI and proxy implementation. Familiar names can be implemented with unfamiliar behavior.

03

A short identifier cannot be globally unique

Four bytes provide a finite identifier space. Different function signatures can map to the same selector, so a decoder may have several candidates.

A wallet should not use a human-readable method label as its only authorization check. The actual target, arguments and resulting permissions remain material.

Direct answers

Questions people ask

Do parameter names change a function selector?

No. The canonical signature uses the function name and parameter types. Renaming a parameter without changing its type does not change that signature.

Inspect the evidence

The answer and key facts have stable claim links. These records retain the scope and qualification when reused.

A conventional Ethereum ABI function selector is the first four bytes of the Keccak-256 hash of the canonical function signature, such as its name and parameter types. It helps a contract dispatch a call. It is only 32 bits, so different signatures can collide; a selector lookup alone cannot establish the intended behavior.

Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.

Link to this claim
Size: An ABI function selector is four bytes.

Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.

Link to this claim
Signature: The canonical signature includes parameter types, not parameter names.

Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.

Link to this claim
Returns: Return types are not part of the function selector.

Scope: Ethereum · data through 2026-10-02. Verification: verified · 2026-10-02T18:12:41.505Z.

Link to this claim
Revision history
  1. — First publication after primary-source research and independent automated verification.

Source register

Sources and references

Retrieval dates and locators are recorded individually.
  1. 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
  2. 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
How this article was made

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 corrections

Degrees of Satoshi editorial project. “Function selectors: the first four bytes of a contract call.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/function-selectors/