# stETH Withdrawal Queue: Lido Unstaking Wait Time

> stETH withdrawal queue: unfinalized stETH in Lido's queue, time to finalization per request, the ETH that pays withdrawals and the stETH to ETH market rate.

Markdown copy of https://voltfincrypto.com/apps/steth-withdrawal-queue

**Question:** How long does it take to withdraw stETH from Lido right now?

- Kind: Dashboard in Voltfin Vantage
- Topic: [Staking and restaking](https://voltfincrypto.com/topics/staking)
- Chains: Ethereum
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Withdrawing stETH from Lido takes two steps: a request that locks the stETH in the withdrawal queue, and a finalization that sets aside ETH to pay it, after which the holder claims. This dashboard reads both from Lido's withdrawal queue contract, so it shows how much stETH is waiting, how long recent requests took to finalize and what a new request is likely to face.

Requests are finalized at Lido's accounting oracle reports, normally once a day, with ETH from new deposits, rewards and validators that have exited. When that is not enough, validators must exit and the wait follows Ethereum's own exit queue, which the dashboard shows beside it. The alternative is to sell stETH for ETH on the market, so the stETH to ETH rate in the main pool is shown too.

Each figure is pinned to a block with the contract calls and events behind it, so the wait estimate can be checked against the requests and finalizations it was built from.

## Blueprint

### Queue

stETH waiting now, recent finalization times and the wait a new request faces.

- **stETH waiting** (stETH): stETH in requests not yet finalized, from unfinalizedStETH() at the latest block read.
- **Requests waiting** (count): Requests between the last finalized id and the last request id at the same block.
- **Median wait, last 30 days** (days): The median time from request to finalization for requests finalized in the last 30 days.
- **Expected wait for a new request** (days): An estimate for a request made now: stETH ahead in the queue against ETH arriving from deposits, rewards and exits at recent rates, shown with its inputs.
- **ETH available to finalize** (ETH): ETH available to pay requests at the latest report: buffered deposits, the withdrawal vault and the execution-rewards vault.
- **stETH to ETH market rate** (ETH): The stETH to ETH rate in the main Curve pool by day, against the one to one rate at which Lido redeems.

### History

Requests, finalizations and finalization times over time.

- **stETH requested** (stETH): stETH requested for withdrawal over the selected period.
- **ETH finalized** (ETH): ETH locked for finalized requests over the same period.
- **Requested and finalized by day** (ETH): stETH requested and ETH finalized each day, so a growing queue shows as requests outpacing finalizations.
- **Time to finalization by request day** (days): The median and the slowest time to finalization for requests made each day, beside Ethereum's exit queue wait.

Filters: Period (Last 30 days, last 90 days or since withdrawals opened).

## How it will be measured

- Requests come from WithdrawalRequested events of Lido's WithdrawalQueueERC721 contract, with each request's id, owner and stETH amount; finalizations come from WithdrawalsFinalized events with the range of ids and the ETH locked.
- Unfinalized stETH, the last request id and the last finalized id are read with unfinalizedStETH(), getLastRequestId() and getLastFinalizedRequestId() at the latest block read.
- A finalized request's wait is the time between its request block and the block of the report that finalized it; the dashboard shows the median and the slowest for each period.
- The ETH available for withdrawals is Lido's buffered ether plus its withdrawal and execution-rewards vault balances; the market rate is the stETH to ETH quote from the main Curve pool at the same block.
- Every figure carries a receipt: the block, its hash and the calls or logs it came from.

## Data it needs

- `lst_rates_daily` (to build): Exchange rates of liquid staking and restaking tokens (wstETH, rETH, cbETH, weETH and others) at day end, and the realized yield they imply.
- `eth_staking_daily` (to build): Active validators, ETH staked, deposits, withdrawals and the entry and exit queues on the Ethereum beacon chain, by day, with staking-provider labels where known.
- `dex_liquidity_daily` (to build): Liquidity held by each DEX pool at day end, in tokens and valued in USD, with fee tier and pool age.
- Source: WithdrawalQueueERC721 WithdrawalRequested events (requestId, owner, amountOfStETH)
- Source: WithdrawalsFinalized events (from, to, amountOfETHLocked, timestamp) and WithdrawalClaimed events
- Source: unfinalizedStETH(), getLastRequestId() and getLastFinalizedRequestId() at a pinned block
- Source: Lido buffered ether and the withdrawal and execution-rewards vault balances
- Source: stETH/ETH Curve pool get_dy for the market rate
- Source: Beacon state exit queue for Lido's exiting validators

## Questions

### How long does it take to withdraw stETH?

When Lido has enough ETH on hand, a request is usually finalized at one of the next daily oracle reports. When validators must exit to pay it, the wait follows Ethereum's exit queue and can stretch to weeks. The dashboard shows how long recent requests actually took.

### Why is my stETH withdrawal request still pending?

A request is finalized only at an accounting oracle report, and only when enough ETH is available to cover every request ahead of it. A long queue, pending validator exits or Lido's bunker mode after large penalties all make finalization take longer.

### What is the difference between withdrawing and swapping stETH?

Withdrawing redeems stETH for ETH one to one through Lido, after a wait. Swapping sells stETH for ETH at once on a market, at whatever rate the market offers, which can fall below one to one when many holders want to leave at the same time.

### What is Lido's bunker mode?

A protective state Lido's oracle enters when the protocol sees large penalties or a negative rebase. Finalization slows down so that holders who stay are not left with the losses of those who leave first.

### What is the stETH discount?

The gap between the market rate of stETH in ETH and the one to one rate at which Lido redeems it. A wide discount means holders are paying to skip the queue; the dashboard reads it from the main Curve pool at each pinned block.

## Glossary

- **Finalization**: The step at which a Lido oracle report sets aside ETH for a range of withdrawal requests, after which their owners can claim.
- **Accounting oracle**: The Lido contract that receives a committee's daily report on validator balances and withdrawals and then triggers rebases and finalization.
- **Withdrawal NFT**: The ERC-721 token Lido mints for each withdrawal request; whoever holds it can claim the ETH once the request is finalized.
- **Exit queue**: Ethereum's queue of validators waiting to stop validating, limited by a churn rate per epoch.

## Related apps

- [Ethereum Validator Queue: Entry and Exit Wait Times](https://voltfincrypto.com/apps/ethereum-validator-queue)
- [Liquid Staking Market Share: stETH, weETH, rETH](https://voltfincrypto.com/apps/liquid-staking-market-share)
- [stETH APR Compared With rETH, weETH and Other LSTs](https://voltfincrypto.com/apps/steth-apr-liquid-staking-yields)
- [Total ETH Staked and Ethereum Staking Ratio](https://voltfincrypto.com/apps/total-eth-staked)
- [EigenLayer Restaking: TVL, Operators, AVSs and Slashing](https://voltfincrypto.com/apps/eigenlayer-restaking-dashboard)
- [ETH Staking APR: Validator Rewards and Yield](https://voltfincrypto.com/apps/eth-staking-apr)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
