Documentation Index
Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
Use this file to discover all available pages before exploring further.
Try it Live
Run Hardfork examples in the interactive playground
Hardfork Timeline
Complete list of Ethereum hardforks with dates, features, and EIP changes.Overview
Each hardfork represents a protocol upgrade that changes EVM behavior, gas costs, or adds new features. Hardforks build upon previous ones chronologically.Hardfork Constants
All hardforks exported as constants:Complete Timeline
FRONTIER (July 2015)
Original Ethereum launch Initial release with base EVM functionality. Key Features:- Basic EVM opcodes (ADD, MUL, SSTORE, SLOAD, etc.)
- Contract creation and execution
- Mining with Ethash PoW
- Gas mechanism
HOMESTEAD (March 2016)
First planned hardfork Fixed critical issues and added DELEGATECALL. Key Features:DELEGATECALLopcode (0xF4) - Execute code in caller’s context- Difficulty adjustment improvements
- Gas cost changes for transaction creation
- Contract creation cost changes
- EIP-2: Homestead hard fork changes
- EIP-7: DELEGATECALL opcode
DAO (July 2016)
Emergency fork for DAO hack State-only changes, no EVM modifications. Key Features:- Moved funds from compromised DAO contract
- No opcode or gas changes
- Controversial hard fork (created Ethereum Classic split)
TANGERINE_WHISTLE (October 2016)
Gas repricing fork Increased gas costs for IO-heavy operations after DoS attacks. Key Features:- Increased gas cost for EXTCODESIZE, EXTCODECOPY, BALANCE, SLOAD
- Changed gas cost for SUICIDE/SELFDESTRUCT
- Maximum call depth increased
- EIP-150: Gas cost changes for IO-heavy operations
- EIP-158: State clearing
SPURIOUS_DRAGON (November 2016)
State cleaning fork Removed empty accounts and added replay protection. Key Features:- Empty account removal (state cleaning)
- EXP opcode repricing
- Contract code size limit (24KB)
- Replay attack protection
- EIP-155: Simple replay attack protection
- EIP-160: EXP cost increase
- EIP-161: State trie clearing
- EIP-170: Contract code size limit
BYZANTIUM (October 2017)
Major feature fork Added important opcodes for smart contract functionality. Key Features:REVERTopcode (0xFD) - Revert with error messageRETURNDATASIZE(0x3D) andRETURNDATACOPY(0x3E)STATICCALLopcode (0xFA) - Non-state-changing calls- Modified difficulty adjustment (ice age delay)
- zkSNARK precompiles
- EIP-140: REVERT instruction
- EIP-211: RETURNDATASIZE and RETURNDATACOPY
- EIP-214: STATICCALL opcode
- EIP-658: Embedding transaction status in receipts
- EIP-196: zkSNARK precompile (alt_bn128 addition)
- EIP-197: zkSNARK precompile (alt_bn128 multiplication)
- EIP-198: BigInt modular exponentiation precompile
CONSTANTINOPLE (February 2019)
Efficiency improvements Added CREATE2 and bitwise shift opcodes. Key Features:CREATE2opcode (0xF5) - Deterministic contract addressesSHL(0x1B),SHR(0x1C),SAR(0x1D) - Bitwise shift operatorsEXTCODEHASHopcode (0x3F) - Get contract code hash- Gas cost optimizations
- EIP-1014: CREATE2 opcode (Skinny CREATE2)
- EIP-145: Bitwise shifting instructions
- EIP-1052: EXTCODEHASH opcode
- EIP-1234: Constantinople difficulty bomb delay
PETERSBURG (February 2019)
Quick fix fork Removed EIP-1283 due to reentrancy concerns. Deployed simultaneously with Constantinople after delay. Key Features:- Removed EIP-1283 (net gas metering for SSTORE)
- All other Constantinople features retained
- EIP-1283: Removed (was net gas metering for SSTORE)
ISTANBUL (December 2019)
Gas optimization fork Rebalanced SSTORE gas costs and added new opcodes. Key Features:CHAINIDopcode (0x46) - Get current chain IDSELFBALANCEopcode (0x47) - Get contract’s own balance (cheaper than BALANCE)- SSTORE gas cost rebalancing (EIP-2200)
- Gas cost reductions for SNARKs and STARKs
- Blake2 compression precompile
- EIP-152: Blake2 precompile
- EIP-1108: Reduce alt_bn128 precompile gas costs
- EIP-1344: CHAINID opcode
- EIP-1884: Repricing for trie-size-dependent opcodes
- EIP-2028: Calldata gas cost reduction
- EIP-2200: Net gas metering for SSTORE (reintroduced safely)
MUIR_GLACIER (January 2020)
Difficulty bomb delay Delayed ice age, no EVM changes. Key Features:- Difficulty bomb delayed 4,000,000 blocks
- No opcode changes
- No gas cost changes
- EIP-2384: Muir Glacier difficulty bomb delay
BERLIN (April 2021)
Access list fork Gas cost changes for state access patterns. Key Features:- Cold/warm storage access distinction
- Increased gas costs for SLOAD, CALL, BALANCE, EXT operations on first access
- Optional access lists in transactions (Type 1)
MODEXPprecompile gas cost changes
- EIP-2565: ModExp gas cost
- EIP-2718: Typed transaction envelope
- EIP-2929: Gas cost increases for state access opcodes
- EIP-2930: Optional access lists
LONDON (August 2021)
Fee market reform Introduced EIP-1559 base fee mechanism. Key Features:- EIP-1559: Base fee + priority fee transaction pricing
BASEFEEopcode (0x48) - Get current block’s base fee- Base fee burned (deflationary mechanism)
- Type 2 transactions (EIP-1559)
- Ice age delay
- EIP-1559: Fee market change for ETH 1.0 chain
- EIP-3198: BASEFEE opcode
- EIP-3529: Reduction in refunds
- EIP-3541: Reject new contracts starting with 0xEF
- EIP-3554: Difficulty bomb delay
ARROW_GLACIER (December 2021)
Difficulty bomb delay Delayed ice age before Merge, no EVM changes. Key Features:- Difficulty bomb delayed ~6 months
- No opcode changes
- No gas cost changes
- EIP-4345: Difficulty bomb delay
GRAY_GLACIER (June 2022)
Difficulty bomb delay Further delayed ice age before Merge, no EVM changes. Key Features:- Difficulty bomb delayed 700,000 blocks
- No opcode changes
- No gas cost changes
- EIP-5133: Difficulty bomb delay
MERGE (September 2022)
Proof of Stake transition Historic transition from Proof of Work to Proof of Stake. Key Features:- Proof of Stake consensus - No more mining
PREVRANDAOopcode (replaces DIFFICULTY, still 0x44)- Beacon chain integration
- DIFFICULTY opcode returns PREVRANDAO value
- Block structure changes
- EIP-3675: Upgrade consensus to Proof of Stake
- EIP-4399: Supplant DIFFICULTY with PREVRANDAO
SHANGHAI (April 2023)
Withdrawal enabling fork Enabled staking withdrawals and added PUSH0. Key Features:- EIP-3855:
PUSH0opcode (0x5F) - Push constant 0 onto stack - Staking withdrawals enabled
- Warm COINBASE (EIP-3651)
- EIP-3651: Warm COINBASE
- EIP-3855: PUSH0 instruction
- EIP-3860: Limit and meter initcode
- EIP-4895: Beacon chain push withdrawals
CANCUN (March 2024)
Proto-danksharding fork Introduced blob transactions for L2 scalability. Key Features:- EIP-4844: Blob transactions (Type 3) - Proto-danksharding
BLOBHASHopcode (0x49) - Access blob versioned hashesBLOBBASEFEEopcode (0x4A) - Get blob gas base fee- EIP-1153: Transient storage -
TLOAD(0x5C) andTSTORE(0x5D) - EIP-5656:
MCOPYopcode (0x5E) - Memory copy instruction - Point evaluation precompile for KZG commitments
- EIP-1153: Transient storage opcodes (TLOAD/TSTORE)
- EIP-4844: Shard blob transactions (proto-danksharding)
- EIP-4788: Beacon block root in EVM
- EIP-5656: MCOPY instruction
- EIP-6780: SELFDESTRUCT only in same transaction
- EIP-7516: BLOBBASEFEE opcode
PRAGUE (May 2025)
Prague-Electra fork Current default. BLS cryptography and account abstraction features. Key Features:- EIP-2537: BLS12-381 curve precompiles (10 new precompiles)
- EIP-7702: Set EOA code for one transaction (account abstraction)
- Validator set changes (EIP-7251, EIP-7002)
- MaxEB (Maximum effective balance increase)
- EIP-2537: BLS12-381 curve operations precompiles
- EIP-7002: Execution layer triggerable exits
- EIP-7251: Increase max effective balance
- EIP-7702: Set EOA account code for one transaction
- EIP-2935: Serve historical block hashes from state
OSAKA (TBD)
Future fork Planned improvements to ModExp and transaction limits. Key Features:- EIP-7883: ModExp gas increase for large inputs
- EIP-7823: ModExp upper bounds
- Transaction and block limits
- EIP-7883: ModExp gas increase
- EIP-7823: ModExp upper bounds
- EIP-7825: Transaction gas limit cap
- EIP-7934: Block RLP limit
Summary Tables
Consensus Changes
| Hardfork | Consensus | Change |
|---|---|---|
| Frontier - Gray Glacier | Proof of Work | Ethash mining |
| Merge+ | Proof of Stake | Beacon chain validators |
Major Opcode Additions
| Hardfork | Opcodes | Purpose |
|---|---|---|
| Homestead | DELEGATECALL | Execute in caller context |
| Byzantium | REVERT, STATICCALL | Error handling, view functions |
| Constantinople | CREATE2, SHL/SHR/SAR | Deterministic addresses, shifts |
| Istanbul | CHAINID, SELFBALANCE | Chain ID, gas optimization |
| London | BASEFEE | EIP-1559 base fee |
| Merge | PREVRANDAO (replaces DIFFICULTY) | PoS randomness |
| Shanghai | PUSH0 | Gas savings |
| Cancun | TLOAD/TSTORE, MCOPY, BLOBHASH | Transient storage, blobs |
Feature Timeline
| Feature | Hardfork | EIP |
|---|---|---|
| DELEGATECALL | Homestead | EIP-7 |
| REVERT | Byzantium | EIP-140 |
| STATICCALL | Byzantium | EIP-214 |
| CREATE2 | Constantinople | EIP-1014 |
| CHAINID | Istanbul | EIP-1344 |
| Access Lists | Berlin | EIP-2930 |
| EIP-1559 | London | EIP-1559 |
| Proof of Stake | Merge | EIP-3675 |
| PUSH0 | Shanghai | EIP-3855 |
| Blob Transactions | Cancun | EIP-4844 |
| Transient Storage | Cancun | EIP-1153 |
| BLS Precompiles | Prague | EIP-2537 |
Usage
Related
- features.mdx - Feature detection methods
- comparisons.mdx - Version comparison
- index.mdx - Main documentation

