Shanghai Noon: Withdrawals for Users After Ethereum’s April 2023 Upgrade

14 MAR 2023
13 min read
ethereum
blockchain
ETH
user
withdrawals
13 min read
Article content
To Unstake or Not to Unstake?
Unstaking for Users 101
Withdrawals on Lido
Final Thoughts

The Shanghai/Cappella (also known as Shapella) upgrade is going live this April, so the community has been busy preparing for it. The Shanghai upgrade brings staking withdrawals to the execution layer. In tandem with the Capella, this enables blocks to accept withdrawal operations, which allow stakers to withdraw their ETH from the Beacon Chain to the execution layer. 

ETH withdrawals are a crucial upgrade feature, as it marks the end of a lock-up period for ETH staking, which generated lots of discussions, arguments, and speculations. Nevertheless, they are not the only update happening, so if you are interested, you may find all Shanghai and Cappella improvements via the respective links.

Once Zhejiang public withdrawal testnet met the crypto world in early February, these preparations and new features anticipation reached a new level with articles and guides for validators being released, like our recent article on ETH withdrawals, including code strings and screenshots.

On the last day of the winter, February 28, Ethereum core developers deployed the Shanghai/Capella on the Sepolia testnet. A final dress rehearsal will occur on the Goerli testnet, coming today, and the upgrade will go live on the mainnet. 

In this article, we will discuss staking after the Shanghai/Cappella upgrade from a user’s perspective and look at what withdrawals may bring about for liquid staking.

To Unstake or Not to Unstake?

Half a year ago, the prefix “un-” was not even considered, as the central question for Ethereum holders sounded like “to stake or not to stake?” There was no precise date when the Shanghai network upgrade would occur, and thus the withdrawing functionality would go live. Instead, there was only a rough estimation mentioning the first half of 2023 with a note saying, “subject to change until completed.” This situation raised many concerns in the community. Some of them subsided after the Ethereum Core Devs Meeting #151 in early December 2022. Devs agreed on the scope of Shanghai and prioritizing withdrawals.

This enables closing the loop on staking liquidity and taking one more step on Ethereum’s journey towards building a sustainable, scalable, secure decentralized ecosystem. So following the upgrade, users will be free to:

  • Stake their ETH
  • Earn ETH rewards automatically
  • Unstake their ETH to regain full access to their entire balance
  • Restake to earn more rewards

The graph below from the Dune wizard @hildobby depicts the correlation between unveiling the details on Shanghai / Cappella on specific dates and the ETH stake growth level.

Amount of Staked ETH and number of validators

Not only stakers became more active as Shapella approached, but the Ethereum Validator Activation Queue, or the number of validators currently waiting to join the network, saw a considerable increase in the past few days. 

According to the monitoring/analytics platform Metrika, validators, peaking at 6,000 at times, were in the queue on February 27. See the breakdown for the past 7 days, March 7-14:

The size of the exit and activation queues

At the same time, validators are preparing to withdrawals on the mainnet by updating their withdrawal credentials and testing how everything works on the Zhejiang testnet. You can check out the Everstake withdrawal experience on the testnet here.

Unstaking for Users 101

If we decided to create a withdrawal guide for a user, it would be the shortest one in Web3 ever! Some good news for ETH stakers here: no user input is needed at any given time to determine whether an account should have a withdrawal initiated or not – the entire process is done automatically by the consensus layer on a continuous loop. 

But there are several notions still worth mentioning.

No gas costs associated with withdrawals

Withdrawals will show up on your execution layer address without any charge from the Ethereum network. It is considered a balance increase rather than a transaction and is, therefore, a gasless state change.

0x01-withdrawal credentials

You must ensure that your validator has updated their withdrawal credentials to an 0x01 format (it can be set after Shapella, as well). If it has type-0x00 withdrawal credentials, they can’t be withdrawn.

On March 14, 2023, Metrika showed that only 42.21% of withdrawal addresses had been set to 0x01. Several weeks ago, @dataalways made Ethereum withdrawal credentials query public.

Comparison of 0x00 VS. 0x01 Ethereum withdrawal credentials

Withdrawal time

A maximum of 16 withdrawals can be processed in a single block. At that rate, 115,200 validator withdrawals can be processed daily (assuming no missed blocks). As noted above, validators without eligible withdrawals will be skipped, decreasing the time to finish the sweep. Below you can see a rough estimation of how much time would be required to process a given number of withdrawals:

Number of withdrawals Time to complete
400,000 3.5 days
500,000 4.3 days
600,000 5.2 days
700,000 6.1 days
800,000 7.0 days

Withdrawals for liquid or pooled staking

If you participate in a staking pool or hold liquid staking tokens, the best decision would be to check with your provider, who can share more details about how staking withdrawals will affect your arrangement, as each protocol operates differently.

That said, let’s look at what withdrawals will look like on Lido, a liquid staking solution for Ethereum, Solana, Polygon, Polkadot, and Kusama. Everstake is one of its node operators, running Beacon validator nodes on behalf of the protocol.

Withdrawals on Lido

Although withdrawals will become available on Ethereum after the Shanghai/Cappella upgrade, this does not mean your liquid staking provider will automatically apply them. They will have to do solid homework to allow users to enjoy withdrawals and rewards benefits.

We recommend listening to top-liquid staking protocols’ thoughts on how Shanghai will change the market (start listening at 00:46:30) on a panel hosted by @theyoungcrews.

In early February, the Lido team presented their Lido V2 proposal, its most significant upgrade to date, and the next step towards protocol decentralization. Withdrawals were among its major focal points. The ability for stETH holders to withdraw their Ether seamlessly is essential for the smooth operation, sustainability, and long-term success of Lido on Ethereum.

The design proposed by Lido on the Ethereum Protocol Engineering team addresses lots of challenges related to in-protocol withdrawal requests to provide the best possible service to Lido’s stakers:

  • stETH should be easy-to-understand: have the stETH balance track 1-1 state of “my share of Ether in the overall pool.”
  • stETH has to be a fungible token so as not to divide liquidity.
  • stETH holders will face a request-claim process for withdrawals. There will be a queue to ensure the requests are processed in the order they are received. The team is seriously considering all possible scenarios.

Once withdrawals are enabled, there could be quite a wide range of possible demand. Long-time stakers may wish to withdraw their positions, not touching the secondary market. To fulfill these requests, Lido on Ethereum could utilize approximately 200,000 Ether obtained through rewards skimming in the week following the hardfork for spawning new validators or executing the first bunch of withdrawal requests. The projection on the timing of this buffer filling in under different scenarios is as follows.

Initial rewards skimming gush

It is hard to precisely predict market behavior once withdrawals go live. Still, we can be sure that the closer we are to the Shapella upgrade, the more whales will join Lido. With no whales joining in November and December and only two staking in January (11,300 and 62,159 ETH, respectively), the total new whales’ ETH stake on Lido in February reached approximately 350,000 ETH.

New Lido whales since January 1, 2023

So, what will the process look like for you? 

1. Request

To withdraw stETH to Ether, you need to send the withdrawal request, locking the stETH amount to be withdrawn.

2. Fulfillment

The protocol handles the requests one by one in the order of creation. The protocol calculates the stETH share redemption rate, sources ETH to fulfill your withdrawal request, locks it, burns the locked stETH, and marks your withdrawal request as claimable.

3. Claim

You can claim your Ether at any time in the future. The stETH share redemption rate for each request is determined at its finalization and is the inverse of the Ether/stETH staking rate.

Also, you should keep in mind the following.

  • You can queue any number of withdrawal requests. While there is an upper limit on the size of a particular request (your stake), there is no practical limit, as a user can submit multiple withdrawal requests. There’s a minimal request size threshold of 100 wei required due to rounding error issues.
  • You can’t cancel your withdrawal requests. To fulfill a withdrawal request, the Lido protocol has to eject validators. A malicious user could benefit from this and effectively lower the protocol APR by forcing Lido validators to spend time in the activation queue without accruing rewards. If the withdrawal request can’t be canceled, this vulnerability goes away. The team currently works on making the position in the withdrawal queue transferrable, which would create a “fast exit path” for regular stakers and allow for the secondary market for “Lido withdrawal queue positions” to form.

Coping with mass-slashing and withdrawal request overload

Lido proposed two operating modes of the withdrawal mechanism to address the issue of unpredictable penalties from slashing or mass requests:

  • The turbo mode processes stETH withdrawal requests as fast as possible and is expected to be working most of the time. 
  • The bunker mode activates under mass slashing conditions. It introduces extra delay for the slashing penalties before the withdrawal request can be fulfilled.

The latter mode will process withdrawals under catastrophic scenarios. Its purpose is to prevent sophisticated actors from gaining an unfair advantage against other stakers by delaying withdrawals in the whole protocol and mitigating the negative impact. 

Under current conditions and the proposed design, Lido will enter the bunker mode in the case of simultaneous slashing of 600+ Lido validators, which is six times more than Ethereum’s historical record. No Lido validator has ever been slashed.

The V2 proposal marked an important milestone for the protocol and was upvoted in early March. It will be implemented in the protocol mainnet soon.

Final Thoughts

With Ethereum’s most anticipated and complicated upgrade out of the way, Ethereum teams, validators, staking pools, liquid staking providers, their node operators, and other ecosystem players are actively preparing for the Shanghai/Cappella upgrade. In total, they spend thousands of hours providing ETH stakers with the best experience of this new significant feature.

Follow us on Twitter and join our Discord to remain in touch and get assistance if needed. If you have any Ethereum-specific issues or questions about withdrawals, feel free to contact our ETH Blockchain Manager on Twitter.

Stake your ETH now | Follow us on X | Connect with us on Discord

Dark - Light
Everstake Logo
Everstake
Content Manager
Everstake is the world's leading validator, with 735,000+ delegators across 77 blockchain networks. We stake $4.8 billion in assets and provide best-in-class staking services to institutional and retail clients.

Contact us

Have questions?
We’re always there to answer!

contact us
Our distributed team of 20+ community managers is online 24/7 and is ready to assist you.
quote avatar

We’d love to hear your thoughts.

Your opinion matters. Share any concerns, issues, or suggestions you may have with us so that Everstake could work on them, and your experience could improve.
Give FEEDBACK