On-chain Analysis of Lido Unstaking

24 October, 2023
article image
Case Study


This article was created in a deep cooperation with Kirill from Shitcoin Research, reach him out!

📝Lido Protocol Review

Lido Finance is a protocol that provides liquid staking solutions for Ethereum and several other PoS networks. In blockchains based on PoS, validators are responsible for transaction validation and block signing, for which they receive rewards. To activate a validator client, capable of running multiple validators, it’s necessary to deploy a full node and deposit a certain amount of funds as collateral (for the Ethereum network, this is 32 ETH). Lido simplifies the staking process for users, reducing both the financial and technical barriers to entry.

This is achieved by pooling users interested in staking with node operators. Node operators are chosen through a voting process by Lido DAO and are responsible for running the validators that support tokens staked with Lido. In return, users pay a 10% fee from their staking rewards, which are split between the node operators and the DAO Treasury. In this way, Lido acts as an infrastructure provider, facilitating interactions between users and node operators both on-chain and off-chain (using its own oracle).

When a user deposits ETH through Lido, they receive a rebase-token called stETH in a 1:1 ratio. This acquired token acts as a liquid tokenized derivative, confirming ownership rights over the deposited ETH. stETH also represents the staker’s interest in the yield and the underlying stake pool. Additionally, stETH is freely traded on exchanges and can be used within the current DeFi ecosystem (for instance, to provide liquidity on Curve).

Staking rewards on stETH are accrued regardless of where the token was acquired. A user can stake their ETH and receive stETH in return on the Lido Finance platform, then buy the token on a DEX or receive a transfer from another wallet; in all these scenarios, staking rewards will be accrued. In Lido, these rewards are credited to users’ balances daily, and this reward mechanism is called rebase.

A peculiarity of rebase tokens is that, by default, DeFi protocols do not support this type of token. This means that liquidity providers (LPs) don’t receive staking rewards when providing stETH as liquidity on platforms. Exceptions include projects like AAVE, Curve, and Yearn Finance — for which the Lido team developed custom integrations (ensuring LPs don’t lose returns on the provided stETH).

Lido is the largest Liquid Staking Derivative (LSD) provider, with a market share of 77.1%. Other leaders in this space include Coinbase (11.3%) and Rocket Pool (6.5%).

Attachment [1] —Link

In addition, Lido’s protocol accounts for 31.7% of the total staked ETH volume:

Attachment [2] —Link

Since its inception in December 2020, 177 thousand people have utilized the liquid staking service offered by the Lido protocol. As of now, Lido’s TVL (Total Value Locked) stands at 8.47 million ETH, which is equivalent to 13.8 billion dollars [Source].

🔍Shappella Upgrade and Lido V2 Analysis

On April 12, 2023, the Ethereum network underwent the Shapella upgrade (a combination of Shanghai + Capella), which allowed validators to withdraw previously staked ETH. Unsurprisingly, this hard fork impacted LSD providers. On May 15, 2023, the Lido team announced an upgrade to the protocol’s second version [Source]. Lido V2, in addition to introducing a new architecture aimed at enhancing the decentralization of node operators, granted users the ability to deactivate validators and withdraw previously permanently locked ETH tokens, while burning their share of stETH.

ETH stakers in Lido can now present their liquid derivatives (stETH), burn them, and withdraw ETH from the protocol’s smart contract at a 1:1 ratio (assuming NORMAL operation of the protocol. If something goes awry, this ratio, surprisingly, has the potential to change theoretically). Lido has stipulated varying ETH withdrawal times depending on the volume of funds being withdrawn [Source]:

  • For < 1,000 ETH — less than a day;
  • For 1,000–5,000 ETH — about 2 days;
  • For 5,000–100,000 ETH — between 4 to 10 days;
  • For > 100,000 ETH — about 2 weeks.

Three sources are earmarked for settling these withdrawal volumes:

  1. Execution Layer Reward Vault: A storage facility consisting of priority-fees that users pay for priority transaction execution, as well as MEV (Miner Extractable Value).
  2. Withdrawals Vault: A storage facility that accumulates partial and full withdrawals originating from the Beacon Chain.
  3. Users’ deposits: Deposited funds from users that haven’t yet been engaged in staking.

Buffer and rewards usage for withdrawals:

Attachment [3] — Lido Docs

In total, from the aforementioned sources, at the launch of Lido V2, a vault with an available 270,000 ETH for withdrawals was established [Source].

Trend in the number of wallets participating in staking and unstaking in Lido:

Attachment [4] —Link

As evident from the chart, the ability to withdraw deposited ETH in Lido V2 wasn’t widely used among stETH holders. Notably, the number of wallets that utilized unstaking is significantly less than the number of wallets that engaged in ETH staking during the same period. This indicates a growing interest in the Lido platform among users.

Volume of deposited and withdrawn ETH:

Attachment [5] —Link

The chart above shows that in almost three and a half months of Lido V2’s operation, over 650,000 ETH were withdrawn. Remarkably, massive volumes, over 400,000 ETH, were withdrawn in the first week by a single wallet. According to data from Arkham Intelligence, this wallet is associated with the bankrupt company, Celsius Network. On May 16th, Celsius withdrew 428,084 ETH through this wallet in 40 minutes, making requests of 1,000 ETH across 429 transactions. Most likely, these withdrawals are related to the company’s debt restructuring. We will exclude this wallet from further calculations.

The volume of deposited and withdrawn ETH excluding the actions of the Celsius wallet:

Attachment [6] —Link

It’s evident that even after excluding the Celsius wallet, the total amount of ETH withdrawn from Lido (i.e., “burned” stETH) exceeded 270,000 in the last week of June. However, this potential deficit was easily offset by new user deposits: in the first week of Lido V2’s operation, they amounted to 291,700 ETH, and in the first two months, they reached 1,500,000 ETH. In the initial two months, 2,250 wallets participated in the withdrawal (1.3% of the total amount), and they collectively withdrew 389,000 ETH, which constitutes 4.8% of the total deposited ETH.

Wallets that burned stETH, by category:

Attachment [7] —Link

The diagram above displays the categories of wallets that participated in fund withdrawals, of which:

  • 6% of addresses acquired their stETH from trading and/or exchange and did not deposit ETH into Lido’s smart contract independently;
  • 27% of addresses obtained their stETH directly through the staking smart contract, and these addresses engaged in stETH trading/exchange;
  • 67% of addresses got their stETH by independently depositing ETH and took no further actions with them (no trading/exchanging).

stETH volumes by category:

Attachment [8] —Link

The chart above illustrates the nature of the origin of the burned stETH when withdrawing ETH, from which:

  • 60% of stETH were acquired by users through trading and/or exchange;
  • 26% of stETH were directly obtained by users via the staking smart contract, and these addresses engaged in stETH trading/exchange;
  • 14% of stETH were acquired by users as a result of their independent ETH deposits.

Now, let’s examine how wallet behavior varies depending on their stETH balance. In the table below, wallets are classified by the quantity of stETH they hold, from smallest to largest, regardless of whether they acquired the tokens via exchange, trade, or staking.

In this table:

  • classification_staking represents the volume of stETH that was present in the wallet’s balance;
  • wallets denotes the number of wallets in a given category;
  • share_unstake_wallets indicates the proportion of wallets that conducted ETH withdrawals (even partial);
  • share_unstake_volume signifies the share of the total stake volume that this user group withdrew;
  • share_total_unstake points out the proportion of wallets that withdrew more than 90% of their ETH.

Attachment [9] —Link

Wallets with smaller volumes (<10 stETH) participate less frequently in withdrawals (1.3%), but when they do, they tend to withdraw almost all of their stake (90%). Wallets holding more than 1,000 ETH participate in withdrawals more often (14%), but only 39% of them withdraw their entire stake volume. The most active group of wallets in fund withdrawal are those with balances exceeding 10,000 stETH. Among them, 35% have utilized the withdrawal feature, and more than 14% of previously deposited ETH has been withdrawn.


  • In nearly two months, a significant portion of the 270,000 ETH pre-allocated by the protocol has been withdrawn;
  • With the launch of Lido V2, there was a sharp increase in demand for ETH deposits (and thus the issuance of new stETH), leading to a rise in the total amount of locked ETH;
  • Participation activity in withdrawals is proportional to the volume of stETH in wallets: the larger the volume of funds in a wallet, the more actively it participates in unstaking;
  • A substantial portion of the burned stETH was acquired by wallets through trading or exchange, rather than through independent deposits.
Case Study



Have a question?

Have a question?

Stay Connected with OXORIO

We're here to help and guide you through any inquiries you might have about blockchain security and audits.