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

