- Withdrawals are coming! The Shapella network upgrade will activate on the Sepolia network at epoch 56832, scheduled for 4:04:48 AM UTC on Feb. 28, 2023
- Stakers & node operators should read this post as well as the Withdrawals FAQ
- The Zhejiang testnet can be used to test Shapella functionality prior to the Sepolia upgrade
After months of testing and an ephemeral devnet launch, the Shanghai/Capella (a.k.a. Shapella) network upgrade is now scheduled for deployment on Sepolia.
This upgrade follows The Merge and enables validators to withdraw their stake from the Beacon Chain back to the execution layer. It also introduces new functionality to both the execution and consensus layer.
Upgrade Specification
The Shapella upgrade combines changes to the execution layer (Shanghai), consensus layer (Capella) and the Engine API.
Shanghai
Execution layer changes included in Shanghai are available here. For reference, they are:
- EIP-3651: Warm COINBASE
- EIP-3855: PUSH0 instruction
- EIP-3860: Limit and meter initcode
- EIP-4895: Beacon chain push withdrawals as operations
- EIP-6049: Deprecate SELFDESTRUCT
Note that EIP-6049 is only a deprecation warning. Client teams expect SELFDESTRUCT semantics to change in future network upgrades, but the opcode's behavior remains unchanged in Shanghai.
Additionally, the changes can now be viewed in the Ethereum Execution Layer Specification (EELS), which is a new Python reference implementation for the execution layer.
Capella
Changes to the consensus layer for the Capella upgrade are specified in the capella directory of the v1.3.0-rc.3 specifications. At a high level, the upgrade introduces:
- Full and partial withdrawals for validators
- BLSToExecutionChange messages, which allow validators using a BLS_WITHDRAWAL_PREFIX to update it to an ETH1_ADDRESS_WITHDRAWAL_PREFIX, a prerequisite for withdrawals
- Independent state and block historical accumulators, replacing the original singular historical roots
Stakers are encouraged to read the Withdrawal FAQ for more information on how they should prepare for Capella.
Client Releases
The following client releases support Shanghai & Capella on the Sepolia testnet. Note that these releases are only for Sepolia. A subsequent announcement will be made for the Goerli and mainnet releases.
When choosing which client to run, validators should be especially mindful of the risks of running a majority client on both the EL and CL. An explainer of these risks and their consequences can be found here. An estimate of current EL and CL client distribution and guides for switching from one client to another can be found here.
Consensus Layer Sepolia Releases
Name | Version | Link |
---|---|---|
Lighthouse | v3.5.0 | Download |
Lodestar | v1.5.0-rc0 | Download |
Nimbus | v23.2.0 | Download |
Prysm | v3.2.1 | Download |
Teku | v23.2.0 | Download |
Execution Layer Sepolia Releases
Name | Version | Link |
---|---|---|
Besu | v23.1.1-RC1 | Download |
Erigon | v2.39.0 | Download |
go-ethereum (geth) | v1.11.2 | Download |
Nethermind | v1.17.0 | Download |
Note: go-ethereum has put out a new recommended release, v1.11.2, for the upgrade. v1.11.1 is also compatible with the Shapella Sepolia upgrade.
FAQ
As an Ethereum user or Ether holder, is there anything I need to do?
In short, no.
If you use an exchange, digital wallet or hardware wallet, you do not need to do anything unless you are informed to take additional steps by your exchange or wallet provider.
If you run your own Ethereum node, see the "As a non-staking node operator, what do I need to do?" section below.
As a non-staking node operator, what do I need to do?
To be compatible with the Shapella upgrade on the Sepolia testnet, update your node to the version of your Ethereum client listed in the table above.
As a staker, what do I need to do?
To be compatible with the Shapella upgrade on the Sepolia testnet, update your node to the version of your Ethereum client listed in the table above.
We recommend reading the Withdrawal FAQ. Additionally, you can test things on the ephemeral Zhejiang testnet prior to the upgrade activating on Sepolia.
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 is not updated to the latest version (listed above), your client will sync to the pre-fork blockchain once the upgrade occurs.
You will be stuck on an incompatible chain following the old rules and will be unable to send Ether or operate on the post-Shapella Sepolia network.
As an application or tooling developer, what should I do?
Shapella does not introduce breaking changes for smart contracts. Application and tooling developers should review the upgrade changes to ensure any fixes are done, or to understand how to use newly introduced functionality.
Why "Shapella"?
Upgrades to the execution layer follow Devcon city names and those to the consensus layer follow star names. "Shapella" is the combination of Shanghai, the location of Devcon 2, and Capella, the brightest star in the northern constellation of Auriga.
Cover image by Yiran Ding