ETH Withdrawals FAQ
The Foundry Staking team organized a FAQ to help current and future stakers navigate the Shanghai/Capella upgrade.
Authored by Business Development Coordinator Victoria Gomes.
The Shanghai/Capella hard fork is coming to Ethereum Mainnet to enable staking withdrawals. This highly anticipated upgrade marks the first milestone in the Ethereum roadmap since the network’s transition to Proof-of-Stake on September 15th, 2022.
While the total staked ETH and the number of active validators continue to grow, the inability to move staked funds is still a barrier to entry for many ETH holders. The Shanghai/Capella upgrade addresses this issue by supporting the automatic payment of rewards (partial withdrawals) and allowing stakers to exit validators entirely (full withdrawals).
The Foundry Staking team organized the FAQ below to help you navigate the changes current and future stakers can expect:
What is the Shanghai/Capella upgrade?
- Shanghai, named after Devcon city, is the Execution Layer upgrade that will implement EIP-3651, EIP-3855, EIP-3860, EIP-4895, and EIP-6049. It contributes to the scalability of the ecosystem by enabling automatic reward payments and allowing users to stake, withdraw, and re-stake their funds.
- Capella, named after the star, is the corresponding Consensus Layer upgrade behind how the withdrawals will work. For example, its specifications include changing withdrawal credentials’ BLS-derived prefix to the newer consensus-layer ETH1 prefix.
When will withdrawals be enabled for staked ETH?
What are withdrawal credentials?
Withdrawal credentials represent a 32-byte value/address stored in an Ethereum validator which determines if and where funds can be sent from this account.
To support withdrawals, validators must have withdrawal credentials with a 0x01 or ETH1 prefix, which indicates an execution layer address and is compatible with withdrawals. Withdrawal credentials with the 0x00 prefix (derived from a BLS key) do not support withdrawals.
Where do withdrawal credentials go in the staking deposit process?
In accordance with EIP 2333 and EIP 2334, the Foundry team will verify your withdrawal address and the number of validators you want to fund in order to generate validating keys (which cannot be used to spend funds on your validator(s).
With the validating keys, Foundry generates a deposit data JSON file, which allows you to create the transaction to fund the ETH validator(s) and include fields such as pubkey (the public key of the validator Foundry created), and withdrawal_credentials (A SHA256 hash of your withdrawal address).
I’m currently staking ETH. Do I have to update my withdrawal credentials?
- Current stakers that have provided a withdrawal address when setting up the staking delegation are not required to update their credentials this time.
- Current stakers that did not provide a withdrawal address when setting up the staking delegation will be required to update their credentials to unlock accumulated rewards. You may refer to the Staking Launchpad for further instructions.
Can I change the withdrawal address associated with a validator?
No, once chosen, an execution-layer withdrawal address is inextricably connected to the validator and cannot be changed. Users must make sure the chosen address is under their control before processing the staking transaction. As it will be the exclusive address to which validator funds may be moved, losing access to the address keys will result in a permanent loss of funds.
Can my withdrawal address be the same address I use to fund the validator(s)?
You may choose to use your funding wallet address as your withdrawal address as well. In this case, after the Shanghai/Capella upgrade, you may withdraw your ETH collateral fully to this address, and staking rewards will also be sent to it.
How will withdrawals work?
Withdrawals will be automatically handled on an ongoing basis. Stakers’ accounts are regularly monitored for eligible payouts. All validators are periodically assessed, and any rewards or exited validators (funds) will be automatically swept to the chosen withdrawal address.
There are two types of withdrawals: Partial and Full Withdrawals.
What are partial withdrawals?
Partial withdrawals will occur automatically when a validator exceeds 32 ETH. As a validator performing duties on the network can contribute exactly 32 ETH, any exceeding ETH has likely accrued from reward payments and will be swept to the designated withdrawal address on an ongoing basis.
Stakers cannot choose how often or how much of the exceeding ETH will be swept to the withdrawal address. This process is facilitated and controlled entirely by the protocol.
What are full withdrawals?
A full withdrawal occurs when the validator exits the validator set and is no longer participating in consensus duties. It can happen voluntarily or forcefully when, for example, the validator balance falls below 32 ETH. The validator must wait in the exit queue before leaving the active set.
After exiting the set, the validator’s stake and accrued rewards will be sent to the withdrawal address.
Validators can already exit the active validator set. However, the stake and accrued rewards will only be swept to the withdrawal address after the Shanghai/Capella upgrade.
How long will it take the network to process withdrawals?
An Ethereum block can process a maximum of 16 withdrawals. Withdrawals will be handled according to the validator index number, which starts at 0. A block proposer will examine validator balances and add any that are qualified for withdrawals to the queue.
With over 550,000 active validators and an average block time of 12.15 seconds, it will take the network almost 5 days to process all the validators. As validators without eligible withdrawals will be skipped, the time to sweep ETH to the withdrawal address will likely decrease.
Do full withdrawals take longer than partial withdrawals?
Validators handle partial and full withdrawals equally; that is, no withdrawal type is prioritized over the other, and both will take the same amount of time to be processed.
However, stakers considering exiting the active validator set should be aware of the timeline for the prerequisite process. Requests to exit the validator set take 5 to 6 epochs (around 35 minutes) and a maximum of seven validators can exit per epoch. After going through the exit queue, validators must wait for 256 epochs (around 27 hours) to be eligible for withdrawals. After the Shanghai/Capella upgrade, the funds from these validators will be swept to their designated withdrawal addresses.
What is the impact of enabling withdrawals on Ethereum gas fees?
As the Ethereum “sweeping” process will occur automatically, stakers will not need to submit transactions manually. In other words, no gas will be required to process withdrawals.
This network change represents the optimization of costs and execution-layer block space, as withdrawals will not be processed as transactions with additional costs for stakers.
Do Ethereum staking rewards auto-compound?
Unlike some Proof-of-Stake protocols, Ethereum does not automatically re-stake rewards.
As mentioned above, a validator performing duties on the network must contribute 32 ETH, which would make native re-staking quite complex.
How can I monitor withdrawal data?
As mentioned above, withdrawals are not transactions, which means that the withdrawal address balance will change without a sender associated with the update.
Users will be able to identify withdrawals by their data field in the block header, which will contain information on the recipient and validator index, for example.
Foundry Staking customers will be able to monitor withdrawal addresses under the ‘My Wallets’ section of our Staking Portal and via our staking API.
The contents of this post have been provided by Foundry Digital LLC (“Foundry” or “we”) for informational purposes only, and should not be construed as giving legal, financial or any other kind of advice. Although we strive to provide quality information, we do not guarantee or warrant any particular results from the use of this information or any opinions provided. Foundry accepts no liability whatsoever for any damages, costs or any other consequences resulting from any actions taken on the basis of the information or opinions provided. Furthermore, Foundry has no control over information provided in any third-party sites linked herein, and Foundry accepts no liability whatsoever over any consequences resulting from any actions taken on the basis of that information. Foundry reserves the right to make changes to this information at any time without prior notice and makes no commitment to update the information contained in this post.