Try it Live
Run Address examples in the interactive playground
Conceptual Guide - For API reference and method documentation, see Address API.
What is an Address?
An address uniquely identifies an account on Ethereum:- EOA (Externally Owned Account) - Controlled by a private key, derived from a public key
- Contract Account - Controlled by contract code, created via CREATE or CREATE2
0x prefix.
Structure
Addresses are fixed-length 20-byte values:Uint8Array internally, performing hex conversions only at API boundaries for performance and to avoid case-sensitivity bugs.
EOA Address Derivation
EOA addresses derive from secp256k1 public keys through keccak256 hashing:Step-by-Step Derivation
Using Tevm’s High-Level API
EIP-55 Checksumming
EIP-55 adds error detection through mixed-case encoding. The checksum is computed by hashing the lowercase address and capitalizing letters based on the hash bits.How Checksums Work
Using Tevm’s Checksum API
Why Checksumming Matters
Checksums detect typos and transcription errors:Contract Address Generation
Contract addresses are computed deterministically from deployment parameters, not derived from public keys.CREATE (Standard Deployment)
Standard contract deployment uses the deployer’s address and nonce:CREATE2 (Deterministic Deployment)
CREATE2 enables deterministic addresses independent of nonce, using a salt and initialization code:CREATE vs CREATE2 Comparison
- CREATE
- CREATE2
Pros:
- Simpler (no salt/initCode needed)
- Standard deployment method
- Supported by all EVM chains
- Non-deterministic (depends on nonce)
- Can’t predict address before deployment
- Redeployment gets different address
- Standard contract deployment
- Address predictability not needed
- Simplicity preferred
Complete CREATE2 Example
Special Addresses
Zero Address
The zero address (0x0000000000000000000000000000000000000000) represents “no address” or burnt tokens:
Precompile Addresses
Addresses0x01 through 0x0a (and beyond) are reserved for precompiled contracts:
Common Operations
Validating User Input
Always validate addresses from untrusted sources:Comparing Addresses
Deduplicating Addresses
Resources
- EIP-55 - Mixed-case checksum address encoding
- EIP-1014 - CREATE2 opcode specification
- Ethereum Yellow Paper - Address derivation (Section 7)
- Ethereum Account Model - EOA vs Contract accounts
- evm.codes - CREATE and CREATE2 opcode reference
Next Steps
- Overview - Type definition and API reference
- Constructors - Creating addresses from various inputs
- Conversions - Converting to different formats
- Contract Addresses - CREATE and CREATE2 in depth

