Staked ETH Withdrawals: What You Can Expect
Ashley Stanhope, Director of Communications, Ether Capital
& Benjamin Thalman, Senior Protocol Specialist, Figment
Ethereum is about to undergo its first major tuneup since the Merge took place in September 2022. The Shanghai/Cappella upgrade, currently slated for April 2023, will allow stakers the ability to finally withdraw their staked ETH and corresponding staking rewards. We can anticipate many stakers are anxiously waiting to access their assets, so we answered FAQs about what you can expect.
How will staked ETH withdrawals be processed?
As of today, there are 17+ million staked ETH (US$26 billion) and more than 518,000 validators securing transactions on Ethereum. This number has been steadily increasing ever since the Beacon Chain launched in December 2020. Since then, all staked ETH has been indefinitely locked in the protocol. Looking under the hood, Cappella is the Consensus Layer (CL) upgrade that will make staked ETH withdrawals possible. It will implement EIP-4895, a new system-level operation, that will push staked ETH from the CL to the Execution Layer (EL), allowing withdrawals to enter into the Ethereum Virtual Machine (EVM). There will be no gas costs associated with withdrawals since they are identified as a new type of object in an Ethereum block rather than user or smart contract-initiated transactions.
Do I need to input a special address to access my staked ETH?
A validator is required to provide a withdrawal address to receive staked ETH. It’s important to note that each validator can only be assigned a single withdrawal address, and once an address is submitted to the CL, it’s final. The process cannot be modified or reversed, so those who stake should verify ownership and accuracy of their address before submitting. If users provided an ETH1 withdrawal address when initially setting up their staking deposit, then no further action is required on their part. However, the majority of stakers did not provide a withdrawal address on initial deposits (most likely used BLS keys) and might need to update their withdrawal credentials to the new format (0x01) in order to receive their Staked ETH and rewards. The Zhejiang Testnet Launchpad has instructions on how to do this for testnet.
How will staking rewards be paid out?
Reward payments are automatically processed for active validator accounts with a maxed out balance of 32 ETH. Any rewards that surpass the validator’s 32 ETH deposit does not add to the validator’s stake weight. Therefore, reward payments are withdrawn every few days with no action required on the validator’s part. Stakers who do not have an ETH1 withdrawal address will be required to update their BLS keys to the appropriate ETH1 address to access CL rewards. Stakers have been able to access EL rewards (block execution fees, MEV) in their ETH1 addresses ever since the Merge via the fee recipient address set on their validators.
Are there different types of withdrawal requests?
There are two main types of withdrawals expected — full withdrawals and partial withdrawals.
Full withdrawals involve stakers removing their 32 ETH from the network and giving up their validator status. In addition to providing a withdrawal address, users looking to remove their full balance and no longer participate in validating transactions, must sign and broadcast a “voluntary exit” message using their validator keys. This process initiates a validator’s exit from staking and adds the validator to the “exit queue”. Once the process is complete, the account is no longer responsible for performing validator duties and will be marked as fully “withdrawable.”
Partial withdrawals refers to removing anything over and above 32 ETH (often staking rewards). These withdrawals are able to bypass the exit queue (when a validator removes their full 32 ETH) and go straight to the withdrawal queue. For partial withdrawals, ETH is automatically transferred to the corresponding withdrawal address. There’s also a limit on how much staked ETH can be withdrawn per day (see below).
How long will withdrawals take?
There are a few different circumstances that will determine how long it takes for a staker to receive their staked ETH and/or rewards.
Full withdrawals require a validator to first exit the set and give up the right to perform validator duties. As mentioned above, there are steps involved before their ETH can be withdrawn, which can take more than 24-hours to complete.
It is worth noting that, currently, the maximum number of validators that can exit the active set per day is 1,800 or 57,600 ETH. This number fluctuates depending on the total amount of Staked ETH to ensure the protocol remains stable. Another reason for the limitations is to stave off attackers from using their stake to act in a malicious manner and withdraw ETH before they can be slashed.
When it comes to actually receiving the staked ETH, only 16 withdrawals (both full and partial) can be put into a block, which happens about every 12 seconds. The reason why partial withdrawals take less time to reach a user’s address is because they are automatic and there’s no need for a validator to exit the set to receive them.
The process for both types of withdrawals could take anywhere between two and four days in the beginning, depending on how many stakers are required to update their withdrawal credentials.
It’s an exciting time for Ethereum as it enters its next phase of growth. Future enhancements to the protocol will aim to improve scalability, including EIP-4844 (proto-danksharding), an upgrade that sets the stage for sharding in 2024. This is all part of Ethereum’s transition to become a more secure and scalable blockchain that can support a wide-range of user and developer activity.
- Staking Withdrawals (ethereum.org)
- Understanding the Exit Queue on Ethereum’s Shanghai Upgrade (IntoTheBlock)
- Ethereum: Shanghai & Capella Upgrades Will Enable Withdrawal Functionality Soon (Figment)
- Ethereum Staking Withdrawals & Liquid Staking Derivatives (CryptoEQ)
- 100 Days After the Merge (Galaxy Research)
- Proto-Danksharding FAQ (notes.ethereum.org)