The Shapella Fork is a hard fork of the Ethereum blockchain that activated on April 12, 2023, at 22:27 UTC, at epoch 194,048. The name combines Shanghai and Capella, the two concurrent upgrades that formed the fork. Shanghai targeted Ethereum's execution layer, while Capella addressed the consensus layer. It was the first Ethereum upgrade to activate simultaneously across both layers, enabled by a shift in the activation mechanism from block numbers to timestamps, as specified in EIP-6953 and EIP-6122.
Shapella is widely regarded as the final chapter of Ethereum's multi-year transition from a proof-of-work (PoW) to a proof-of-stake (PoS) consensus mechanism, a process that began with the launch of the Beacon Chain in December 2020 and reached its defining moment with The Merge in September 2022.
When the Beacon Chain went live on December 1, 2020, validators had to deposit a minimum of 32 ETH to participate in the network's PoS consensus. This staking mechanism was designed as a one-way process: validators could lock their funds but could not withdraw either their original deposit or any accrued rewards. This constraint persisted through The Merge in September 2022, which fused the Beacon Chain with Ethereum's original execution layer and completed the shift to PoS, but still left staked ETH inaccessible.
By the time Shapella activated, about 16 million ETH, roughly 15% of the token's circulating supply, was locked in the network. The total value of those holdings exceeded $26 billion, making the withdrawal restriction one of the most consequential pending items on Ethereum's development roadmap.
The Shanghai component of the fork changed Ethereum's execution layer, where transactions are processed and broadcast. It bundled five Ethereum Improvement Proposals (EIPs), each targeting a distinct aspect of network behavior.
EIP-4895 was the centerpiece of the Shapella fork. It introduced a mechanism that pushed validator withdrawals from the Beacon Chain directly to the execution layer, moving staked ETH from the consensus layer into the Ethereum Virtual Machine (EVM), where it could be accessed and spent. To prevent an uncontrolled outflow of staked assets, the protocol imposed a rate limit: only six validators per epoch could perform a complete withdrawal, about 1,350 full exits per day.
EIP-3651 reduced gas costs for block builders by keeping the COINBASE address, a software component they regularly interact with, in a "warm" state. Accessing a cold address incurs higher gas costs under Ethereum's fee model, so this change lowered overhead for those assembling transaction blocks.
EIP-3855 introduced the PUSH0 opcode to the EVM. This instruction simplified a common operation in smart contract code, reducing gas consumption and storage needs for developers deploying contracts referencing a constant zero value.
EIP-3860 set size limits and metered gas costs for initcode, the bytecode used during new smart contract deployment. Before this change, no upper bound existed on initcode size, which could cause delays and security risks. The EIP established boundaries to make contract deployment more predictable and consistent.
EIP-6049 served as a deprecation notice for the SELFDESTRUCT opcode, signaling to developers that this opcode would undergo significant changes in a future upgrade. It did not remove the functionality but formally warned against relying on it.
While Shanghai drove the withdrawal feature on the execution layer, the Capella upgrade to the consensus layer was equally necessary for the system to work end-to-end. Capella enabled the Beacon Chain to process withdrawal requests and introduced automated account sweeping. This mechanism automatically identified validator balances exceeding 32 ETH and swept the excess to the corresponding execution-layer address without manual action by the validator.
A key prerequisite for withdrawals was the format of validator withdrawal credentials. Early validators who set up accounts at the Beacon Chain's launch had credentials in the legacy "0x00" format, incompatible with the withdrawal system. These validators had to update their credentials to the "0x01" format before receiving any funds. Validators with "0x01" credentials received their excess balances automatically through sweeping.
The Shapella fork introduced two withdrawal types for validators. Partial withdrawals let a validator claim only the balance exceeding the 32 ETH principal, allowing them to collect staking rewards while remaining active in the Beacon Chain. Full withdrawals involved a complete exit from the network, returning both the original 32 ETH stake and any rewards, subject to exit queue processing times.
Before reaching the Ethereum mainnet, the Shapella upgrade was tested on two public testnets, Sepolia and Goerli. The final pre-mainnet test took place on Goerli on March 15, 2023. The mainnet activation date of April 12, 2023, was confirmed during the Ethereum All Core Developers Execution (ACDE) call on March 16, 2023.
Shapella was the first major network upgrade after The Merge and closed the staking-withdrawal gap that The Merge had deferred. Several EIPs initially considered for Shapella, including EIP-4844 (Proto-Danksharding), were removed to avoid delaying withdrawal functionality. Those proposals moved to the subsequent Dencun upgrade, which focused on improving scalability through data availability for Layer 2 rollups.