TL;DR: It is necessary for ALL validators to upgrade their clients with the latest versions. See the “Upgrading Your Clients” section for relevant links. Some validators will also need to assign a withdrawal address. See the “Withdrawal Addresses” section for more information.
The Shapella update is scheduled for April 12th, 2023 and it promises to unlock an exciting new frontier for Ethereum staking. While many in the community have been waiting on what they believe to be called the Shanghai update, this only represents one piece of the puzzle.
“The Merge” signified the merging of the original Ethereum Mainnet with a separate proof-of-stake blockchain called the Beacon Chain. As a result, Ethereum nodes now comprise of both an execution client (original mainnet) and a consensus client (beacon chain). Due to this configuration, an update to Ethereum as a whole requires parallel upgrades by validators to these two different clients.
The Shanghai upgrade represents the changes that will be made to Ethereum’s execution clients. Its sibling upgrade is known as Capella and will focus on Ethereum’s consensus clients. The combination of the two names gives us the “Shapella” moniker.
Shapella will close the loop on the validator lifecycle and usher in a new era of post-Merge Ethereum. However, while the finish line is close, there is still work to be done in ensuring that the network’s most important actors—validators—are ready for this change.
Today we will dive into what validators need to know to prepare for the Shanghai and Capella upgrades to ensure a seamless transition.
Overview of the Shapella Upgrades
Shangai — Execution Layer Upgrade
The EIPs included within the Shanghai upgrade can be found on GitHub. They include:
- EIP-3651: Warm COINBASE
- EIP-3855: PUSH0 instruction
- EIP-3860: Limit and meter initcode
- EIP-6049: Deprecate SELFDESTRUCT
- EIP-4895: Beacon chain push withdrawals as operations
Capella — Consensus Layer Upgrade
Information regarding the technical changes surrounding Capella can also be found on GitHub. These include upgrades related to:
- Beacon chain changes
- Capella fork
- Light client sync protocol changes
- Validator additions
- P2P networking
While Shanghai is the primary mover of withdrawals via EIP-4895, Capella is still necessary for the full upgrade to take effect. Stakers that will need to update their withdrawal addresses will not be able to do so until Capella is completed.
How Shapella Impacts Validators
Withdrawal Addresses
The majority of the complexity being introduced for validators with the Shapella upgrade has to do with withdrawal addresses. This is due to the “0x01” address format which must be used for withdrawals as opposed to “0x00” format addresses which were used by many early validators, but which will not function after withdrawals are enabled. Galaxy Digital has a great explanation of the context behind this nuance:
“Initially, when the Beacon Chain first launched, validator node operators were required to specify a withdrawal address that would deposit to an address on the CL of Ethereum. At the time, the plan to transition Ethereum by hotwiring the Beacon Chain to the existing network of Ethereum had not yet been formulated. Therefore, there was no reason to require validators to specify a withdrawal address on Ethereum, instead of the Beacon Chain.
However, given the design of the Merge and the fusing together of the Beacon Chain with Ethereum, validators are required to update their withdrawal credentials to a 0x01 format, which enables withdrawals directly to an Ethereum EL address. Newer validators that were spun up after 0x01 withdrawal credentials were added to the Beacon Chain back in March 2021 had the option of specifying an Ethereum withdrawal address, though the majority chose to create a default withdrawal address to the Beacon Chain according to the 0x00 format. According to Ben Edgington, an Ethereum core developer and product lead for CL client Teku, there is roughly 302,154 validators with 0x00 credentials, and 186,722 with 0x01 credentials on the Beacon Chain.”
When considering the data above, it is clear that a large number of early validators will need to update their withdrawal addresses. If they do not, validator earnings will continue to be retained by their node until the update is made.
Validators can check whether or not their withdrawal address is a 0x01 address by utilizing the ethdo tool or by checking the Beaconchain Deposits field under the Deposits tab for their validator on Beaconcha.in.
Validators that do not have the 0x01 address set will need to complete the upgrade process outlined in the Ethereum.org docs here. It’s important to note that the current instructions listed on that page are for testnet and that validators will need to check with their specific client software regarding when key changes can be made. It is expected that each client team will announce when address changes are ready.
Validators undertaking the withdrawal address change should take utmost care because it is a one-time action. The address cannot be reset after being changed and, if it is set to an address that the validator does not control, it could result in a complete loss of funds.
If a validator absolutely must change their withdrawal address, they will instead need to complete a full withdrawal from the Beacon Chain. After this is completed they would be able to restake with their funds and set the proper desired withdrawal address during the configuration process.
Understanding the Types of Withdrawals
There are two different types of withdrawals that a validator can execute. These are:
Partial withdrawals: These withdrawals happen automatically if the validator has a valid 0x01 address. Validator balances in excess of 32 ETH (earned rewards) are withdrawn to their specified Ethereum withdrawal address and can be spent immediately. The validator will continue to be a part of the beacon chain and validate as expected.
Full withdrawals: These withdrawals must be manually initiated by the validator. After the completion of a full withdrawal the validator will exit and stop being a part of the Beacon Chain. The entire balance (32 ETH principle and any rewards) of the validator is sent to their specified 0x01 withdrawal address. If a validator initiates a full withdrawal but still utilizes a 0x00 withdrawal credential, funds will not be withdrawn until a BLSToExecutionChange message (which updates to a 0x01 address) is included on-chain.
The technical process for completing the request of a full withdrawal varies depending on the client a validator is using. The official Ethereum staking launchpad withdrawals page includes the following links for reference:
- Exiting a Prysm validator
- Exiting a Lighthouse validator
- Exiting a Teku validator
- Exiting a Nimbus validator
- Exiting a Lodestar validator
- Exiting an eth-docker validator
- Exiting a DAppNode validator
- Exiting a Rocket Pool minipool
Upgrading Your Clients
While not every validator will need to update their withdrawal addresses, it is critical that validators do upgrade the consensus and execution clients that power their validators for Shapella.
The Ethereum Foundation’s blog has published a complete list of all the mainnet releases for both execution and consensus layer clients for Shanghai. They are:
CONSENSUS CLIENT | VERSION | LINK |
Lighthouse | v4.0.1 | Download |
Lodestar | v1.7.0 | Download |
Nimbus | v23.3.2 | Download |
Prysm | v4.0.0 | Download |
Teku | v23.3.1 | Download |
EXECUTION CLIENT | VERSION | LINK |
Besu | v23.1.2 | Download |
Erigon | v2.42.0 | Download |
go-ethereum (geth) | v1.11.5 | Download |
Nethermind | v1.17.3 | Download |
The links above are valid as of the publishing of this blog, but there is an outside possibility that changes will still need to select clients in the lead up to Shapella. We recommend using the links below to stay up-to-date with your preferred clients:
Execution Clients
- Geth: Twitter | Discord
- Nethermind: Twitter & Discord
- Erigon: Twitter & Discord
- Besu: Twitter & Discord
Consensus Clients
- Prysm: Twitter & Discord
- Lighthouse: Discord
- Teku: Twitter & Discord
- Nimbus: Twitter & Discord
- Lodestar: Twitter & Discord
Monitor the Upgrade in Real-time
If you’re counting down the days until withdrawals, you can keep track with our Shapella countdown timer. Be sure to follow @Blocknative on Twitter as well as we will be sharing relevant information regarding the upgrade as it goes live.
Whether it's boosted MEV rewards for validators, programmable infrastructure for builders and searchers, or our Web3 Onboard for dapps and wallets, Blocknative provides real-time infrastructure that's helping shape the bright future of Ethereum. If you would like to learn more about building with Blocknative, contact us today or join our Discord!
Further reading:
- https://blog.ethereum.org/2023/03/28/shapella-mainnet-announcement
- https://ethereum.org/en/staking/withdrawals/
- https://launchpad.ethereum.org/en/withdrawals
- https://notes.ethereum.org/@launchpad/withdrawals-faq
- https://www.galaxy.com/research/insights/ethereum-all-core-developers-execution-call-157/
- https://notes.ethereum.org/@launchpad/withdrawals-guide
- https://eips.ethereum.org/EIPS/eip-4895
- https://ethstaker.gitbook.io/ethstaker-knowledge-base/faq
- https://www.galaxy.com/research/insights/ethereum-all-core-developers-execution-call-157/
- https://www.reddit.com/r/ethstaker/comments/10xxt8j/updating_ethereum_clients_for_new_version/
Gas Extension
Blocknative's proven & powerful Gas API is available in a browser extension to help you quickly and accurately price transactions on 20+ chains.
Download the Extension