Withdrawals FAQs for Solo Staking
This FAQ answers some of the most important questions around withdrawals and explains how as a solo staker you can access all your staking returns, and the processes around unstaking.
Last updated
This FAQ answers some of the most important questions around withdrawals and explains how as a solo staker you can access all your staking returns, and the processes around unstaking.
Last updated
Solo staking is choosing an Ethereum client and running both an execution layer client and consensus layer client to run an Ethereum node, connect it to the internet, and depositing 32 ETH to activate a validator, giving you the ability to participate directly in network consensus. Solo staking is about running your nodes on infrastructure you own, choosing the Ethereum client for your validator and beacon node and also choosing and running your execution layer client.
Solo staking allows you to earn and keep 100% of the execution and consensus layer rewards that are available to your validator node. This is different from using a staking-as-a-service provider, or an exchange where your returns from both the execution layer and consensus layer are not transparent and sometimes require you to pay a commission.
Withdrawals for solo stakers will be straightforward. For a Launchnodes customer, we will provide you with as much or as little support as you or your business requires.
The Shanghai upgrade will give solo stakers the ability to withdraw and unlock their 32 ETH and earned rewards, and exit the network.
Unstaking your 32 ETH as a validator requires waiting in the ‘exit queue’ which is determined by Ethereum’s ‘churn limit*’. After a validator passes through the queue, it enters the ‘withdrawal period’ which varies as a function of the number of validators that want to withdraw at the same time. This will not be instant and will vary, it could take hours, weeks, or months.
*The churn limit is a variable that defines the maximum number of validators that can be exited per epoch (every 6.4 minutes).
Shanghai will enable two types of withdrawals on the Consensus layer: partial withdrawals (referred to as skimming) and full withdrawals (unstaking).
When skimming, a validator will withdraw their balance above 32 ETH, the staking rewards can be sent to an Ethereum address of your choice and the rewards are liquid and can be used immediately. Skimming is automatic once the validator has their withdrawal credentials set to a valid Ethereum address.
In a full withdrawal, a validator may remove their 32 ETH stake from the Beacon chain. The full balance of the validator is then unlocked and liquid, and is able to be used after the exit and withdrawal is processed.
Execution layer withdrawals are already enabled. As a solo staker, 100% of these returns go to an address of your choice.
Mainnet validator nodes contain a field referred to as the ‘withdrawal credentials’. The first two bytes of this credential are called the withdrawal prefix. This value is currently a number that starts with 0x00 or 0x01. Validators with a 0x00 withdrawal prefix will not be able to withdraw immediately. 0x00 validators need to change to an address that starts with 0x01. This is a one-time process that enables the withdrawal functionality (skimming and unstaking). Launchnodes’ engineering team can show you how to do this, or you can do this yourself if you feel comfortable doing so.
Yes. You can only set your withdrawal address once, but you can always change your execution layer address. You can set your execution layer address to that withdrawal address at any time.
Consensus layer rewards are earned frequently and are consistent, and represent a guaranteed opportunity to make staking returns from your validator nodes.
Execution layer returns are infrequent and highly variable, but they can also be very large. It is a key advantage of solo staking that you get to keep these returns and know exactly how much you have earned and when. This is not possible when using a staking-as-a-service provider, an exchange or Liquid Staking Derivatives (LSDs).
Consensus layer rewards can be withdrawn to the Execution withdrawal address. This address can be configured only once. Skimming returns and your consensus layer rewards are the same thing and will be received automatically to this address if you have 0x01 credentials. Full withdrawals/unstaking will allow you to withdraw the entire 32 ETH to this address when you want to exit your validator.
Execution layer rewards such as priority fees or MEV tips are received to the configured --fee-recipient-address or execution layer address.
Most solo stakers did not provide a withdrawal address on initial deposit, and so need to update their withdrawal credentials. You can enter your validator index number here https://launchpad.ethereum.org/en/withdrawals to see if you need to update your credentials.This will output a ‘withdrawal credentials’ field which either begins with 0x00 or 0x01 so you can confirm if you need to change your address.
If you don't add withdrawal credentials, ETH will simply get added to your validator account until a withdrawal address is provided.
This conversion is also called BLS(0x00) to Execution(0x01). We can use the StakingDepositCLI tool. Please contact Launchnodes support for help or detailed instructions and video guides.
No. The migration from 0x00 to 0x01 is something you can do only once, and this new address you choose becomes the place where your consensus layer staking returns go to. When you want to stop staking, this is where your 32 ETH is returned to.
It is therefore extremely important that when you change this address, you make sure it is a correct address, which you have access to, and the address and wallet has the requisite level of security around it. Once you have set this address for your nodes, the address cannot be changed.
At Launchnodes, we can help you with this migration. If you choose to do it yourself, please do so carefully. If you lose access to this address you will lose access to your 32 ETH and your staking returns.
As a solo staker, you can change the address for your Execution layer returns at any point.
The short answer is that nobody knows exactly. There is a single withdrawal queue that will process partial and full withdrawals. Each slot (every 12 seconds) enables 16 partial withdrawals*. Validators that want to exit work have the same flow, but the number of validators that can exit the beacon chain per day rate is limited to preserve the stability of the network.
So it could take two or three days. In the event that lots of validators want to leave at the same time, it could take much longer. We don't actually know until the upgrade is complete and the network experiences a large build up of validators that want to withdraw. When large numbers of Validators withdraw from the network, the Consensus layer returns will go up to encourage Validators to stay on the network and to attract new Validators.
Yes. If your withdrawal credentials are set to 0x01 and point to a valid Ethereum address, then a partial withdrawal will happen automatically.
If not, the rewards will stay on your validator node account until you enter a valid withdrawal address.
No. If your validator is currently active and participating in the beacon chain, then the full withdrawal will not happen automatically. You will need to manually initiate withdrawal and exit the beacon chain, and then the entire balance will be unlocked.
The Launchnodes support team can help you with this, or you can do it yourself.
Partial withdrawals happen automatically once you validator has a balance above 32 ETH. If you have 0x01 credential, then rewards in excess of 32 ETH will transfer into the Ethereum address that you have chosen and configured.
If you have already configured your withdrawal address and have a withdrawal credential of 0x01, then rewards in excess of 32 ETH will transfer into the Ethereum address that you have chosen and configured.
If you want help doing this, please contact our support team at Launchnodes.
References
* https://beincrypto.com/what-ethereum-shanghai-update-means-eth-withdrawals/
*https://notes.ethereum.org/@launchpad/withdrawals-faq#ETH-Withdrawals-FAQ