Free online tools to generate, calculate,
convert, format, encode, and play.
 

4-Byte Selector Lookup

Compute 4-byte function selectors or 32-byte event topic hashes from a Solidity signature, or look up known signatures for a given selector hash. All processing runs locally in your browser.


Signature Input

Quick Examples


How It Works

In the Ethereum Virtual Machine (EVM), every function call to a smart contract begins with a 4-byte selector that identifies which function to execute. This selector is derived from the function's canonical signature using Keccak-256 hashing.

Function Selectors

A function selector is the first 4 bytes of the Keccak-256 hash of the function's canonical signature. The canonical form uses only parameter types (no names, no spaces), for example:

  • transfer(address,uint256)0xa9059cbb
  • approve(address,uint256)0x095ea7b3
  • balanceOf(address)0x70a08231

When you call a contract function, the transaction's input data starts with this 4-byte selector followed by the ABI-encoded arguments.

Event Topic Hashes

Events use a similar mechanism but with the full 32-byte Keccak-256 hash (not truncated to 4 bytes). This hash becomes the first topic (topic0) in log entries:

  • Transfer(address,address,uint256)0xddf252ad...
  • Approval(address,address,uint256)0x8c5be1e5...

Selector Collisions

Because selectors are only 4 bytes (232 possibilities), different function signatures can produce the same selector. This is called a collision. While rare for common functions, it is important when verifying which function a selector corresponds to. Public databases like 4byte.directory and OpenChain catalogue known signature-to-selector mappings.

Common Selectors

SelectorFunction SignatureStandard
0xa9059cbbtransfer(address,uint256)ERC-20
0x095ea7b3approve(address,uint256)ERC-20
0x70a08231balanceOf(address)ERC-20
0x23b872ddtransferFrom(address,address,uint256)ERC-20
0x18160dddtotalSupply()ERC-20
0xdd62ed3eallowance(address,address)ERC-20
0x42842e0esafeTransferFrom(address,address,uint256)ERC-721
0x6352211eownerOf(uint256)ERC-721


Feedback

Help us improve this page by providing feedback, and include your name/email if you want us to reach back. Thank you in advance.


Share with