- Withdrawals are on the way! The Shapella network upgrade will launch on the Ethereum network at epoch 194048, set for 22:27:35 UTC on April 12, 2023
- Stakers and node operators should review this post as well as the Withdrawals FAQ
- Starting now and until April 5th, the Ethereum Bug Bounty rewards for Shapella vulnerabilities have been increased
- You can now register to receive email notifications for these upgrade announcements. Scroll to the bottom of the page to sign up
Following a seamless Goerli transition, client teams have scheduled the Shapella upgrade for mainnet implementation. Consensus was swiftly reached on an April 12th date during the 157th AllCoreDevs Execution Layer meeting.
This upgrade comes after The Merge and enables validators to withdraw their stake from the Beacon Chain back to the execution layer. It also brings new functionalities to both the execution and consensus layers as outlined below.
Upgrade Specification
The Shapella upgrade incorporates modifications to the execution layer (Shanghai), the consensus layer (Capella), and the Engine API.
Shanghai
The execution layer changes included in Shanghai are available here. They include:
Please note that EIP-6049 is merely a deprecation warning. Client teams anticipate that SELFDESTRUCT semantics will evolve in future network upgrades; however, the opcode’s behavior remains consistent in Shanghai.
Furthermore, the comprehensive list of Shanghai changes is now accessible in the Ethereum Execution Layer Specification (EELS), which serves as a new Python reference implementation for the execution layer.
Capella
Consensus layer alterations for the Capella upgrade are detailed in the v1.3.0-rc.5 specifications. The README outlines the complete set of modifications. At a higher level, the upgrade introduces:
- Complete and partial withdrawals for validators
- BLSToExecutionChange messages, which permit validators using a BLS_WITHDRAWAL_PREFIX to transition it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a necessary step for withdrawals
- Independent state and block historical accumulators, replacing the original singular historical roots
Stakers are encouraged to consult the Withdrawal FAQ for further details on how to prepare for Capella.
Engine API
Updates to the Engine API can be found in the shanghai.md file of the execution-apis repository. In summary, a WithdrawalV1 structure has been introduced and included in relevant structures and methods. Changes to the execution layer APIs since The Merge are compiled in the repository’s latest release.
Client Releases
The following client releases support Shanghai & Capella on the Ethereum mainnet. Previous Shapella releases were only suitable for testnet deployments and are not compatible with the mainnet upgrade.
When selecting which client to operate, validators should be particularly aware of the hazards of using a majority client on both the execution layer (EL) and consensus layer (CL). An explanation of these risks and their implications can be found here. An overview of current EL and CL client distribution along with guides for switching clients can be found here.
Consensus Layer Mainnet Releases
Note: when operating a validator, both the Consensus Layer Beacon Node and Validator Client must be kept updated.
Execution Layer Mainnet Releases
Note: a problem has been identified in Erigon v2.41.0. This version will not be appropriate for the Shapella upgrade. Erigon users should upgrade to v2.42.0.
FAQ
As an Ethereum user or Ether holder, is there anything I need to do?
In a nutshell, no.
If you are using an exchange, digital wallet, or hardware wallet, you don’t need to take any action unless directed to by your exchange or wallet provider.
If you’re operating your own Ethereum node, check the next question.
As a non-staking node operator, what do I need to do?
To ensure compatibility with the Mainnet upgrade, update your node to the version of your Ethereum client shown in the table above.
As a staker, what do I need to do?
For compatibility with the Mainnet upgrade, update your node to the version of your Ethereum client listed in the table above. Ensure both your beacon node and validator client are updated!
We also suggest reviewing the Withdrawal FAQ.
What happens if I am a staker or node operator and I do not participate in the upgrade?
If you are using an Ethereum client that hasn’t been updated with the latest version (as listed above), your client will synchronize to the pre-fork blockchain after the upgrade takes place.
You will be stuck on an incompatible chain operating under the old rules and won’t be able to send Ether or function on the post-Shapella Ethereum network.
As an application or tooling developer, what should I do?
Shapella does not introduce any breaking changes for smart contracts. Application and tooling developers should examine the upgrade changes to ensure all necessary adjustments are made and to grasp newly introduced functionalities.
That said, application developers should note that since Shanghai, the SELFDESTRUCT opcode is deemed deprecated. Although its semantics do not alter in this network upgrade, changes are likely in future updates. Refer to EIP-6049 for additional information.
Why is it called “Shapella”?
Upgrades to the execution layer are named after Devcon cities, while those to the consensus layer are named after stars. “Shapella” combines Shanghai, the site of Devcon 2, and Capella, the brightest star in the northern constellation of Auriga.
Where can I watch Shapella launch live?
EthStaker & Ethereum Cat Herders will be hosting a viewing party for Shapella, beginning shortly before the upgrade goes live. You can tune in here.
A big thank you to everyone who contributed to the Shapella upgrade, and to all the stakers—both new and seasoned—who are helping secure what remains the early days of proof-of-stake Ethereum!
Cover image originally created by Yiran Ding, modified by Tomo Saito.