Liquid staking tokens are technically straightforward in concept — you stake ETH, receive a token representing your staked ETH + accruing rewards — but surprisingly complex in implementation. The fundamental design question is: how does the token represent the growing value of the underlying staked ETH? Two approaches emerged: rebasing (the token balance grows automatically) and non-rebasing (the exchange rate between token and ETH grows while balance stays fixed). Each approach has profound implications for DeFi composability, tax treatment, smart contract integration, and risk. Understanding these distinctions is essential for any DeFi user managing significant ETH staking exposure, and for developers integrating LSTs into protocols.
The Core Problem: Representing Accruing Yield
The following sections cover this in detail.
Staking Yield Mechanics
When you stake 1 ETH via Lido:
- 1 ETH → 1 stETH (initially)
- Lido’s validators earn ETH staking rewards (~3–5% annually)
- Your 1 stETH gradually becomes worth more than 1 ETH
The question: How should “1 stETH worth 1.04 ETH” be represented?
- Rebasing model: Your stETH balance automatically increases to 1.04 stETH (still 1:1 with ETH per share)
- Exchange rate model: Your stETH balance stays at 1.000 stETH, but now 1 stETH redeems for 1.04 ETH
Rebasing Tokens: stETH (Lido)
The following sections cover this in detail.
How Rebasing Works
Lido’s stETH is the canonical rebasing liquid staking token:
- Daily oracle update: Every 24 hours, Lido’s oracle reports total ETH in the Lido validator set
- Balance rebase: All stETH holders’ balances automatically adjust proportionally
- If total ETH grew 0.01% today: Every stETH balance grows 0.01%
User experience:
- Check wallet: Yesterday 1,000 stETH → today 1,000.10 stETH (automatic, no transaction)
- Always pegs to ~1 stETH per ETH (minor premium/discount from secondary market dynamics)
Rebasing Problems for DeFi
Rebasing creates headaches for smart contracts:
- Snapshot/approval issues: If you approve 1,000 stETH to a contract, the contract may receive 1,001 stETH by the time it executes (the balance increased)
- Mapping inconsistencies: Many smart contracts store balances in a mapping; the balance changes outside the contract’s execution
- Lending protocol incompatibility: Aave V2 originally couldn’t support stETH as collateral due to rebasing mechanics
- Event gaps: The rebase happens via oracle batch update — protocols must listen for oracle events or they miss the yield
Real-world consequence: Many DeFi protocols don’t support naked stETH. They require wstETH (wrapped stETH).
Tax Implications of Rebasing
In the US, each rebase event (daily balance increase) may be a taxable income event:
- IRS Notice 2014-21: Crypto received as income is taxed at fair market value when received
- If stETH rebases daily, you potentially have 365 taxable income events per year
- Tax Software (Koinly, TokenTax, CoinTracker) attempt to track rebases but may have gaps
Non-Rebasing Exchange Rate Tokens
The following sections cover this in detail.
How Exchange Rate Tokens Work
Rocket Pool’s rETH is the canonical non-rebasing LST:
- Deposit 1 ETH → receive rETH based on current exchange rate
- Exchange rate starts at 1, increases over time as staking rewards accrue
- Your rETH balance NEVER CHANGES — but each rETH redeems for more ETH over time
Example:
- Day 0: Deposit 1 ETH → receive 1 rETH (rate: 1.0000)
- Day 365: Rate is 1.0430 → your 1 rETH now redeems for 1.0430 ETH
- Your balance: Still 1 rETH — nothing changed in your wallet
Exchange Rate Benefits for DeFi
Non-rebasing tokens are “ERC-20 compatible” in the simplest sense:
- Balances only change when tokens are transferred (expected ERC-20 behavior)
- Smart contracts can hold rETH without balance suddenly changing
- Aave V3, Morpho, Spark Protocol can use rETH as collateral without modification
- Approvals work exactly as expected: approve 1 rETH → spend exactly 1 rETH
Exchange Rate Denominations
When using exchange rate tokens in DeFi:
- Liquidity pools must track “shares” vs. “value” carefully
- Price oracles must report the exchange rate (rETH/ETH = 1.043) not a fixed 1.0
- Price manipulation: If oracle is wrong about rETH/ETH rate, lending protocols can be exploited
wstETH: The Non-Rebasing Wrapper for stETH
Because stETH’s rebasing complicates DeFi integration, Lido created wstETH (Wrapped stETH):
How wstETH Works
- Hold stETH → deposit into wstETH contract
- Receive wstETH shares: Number of wstETH shares based on current stETH/shares ratio
- Your wstETH balance never changes (like rETH)
- The exchange rate (wstETH → stETH) grows as rebases occur in the underlying stETH
- When you unwrap: Receive current stETH balance based on exchange rate
Conversion example:
- Day 0: Wrap 1,000 stETH → receive 900 wstETH (rate: 1,000/1,111 ≈ 0.9, assuming some prior yield accumulated)
- Day 365: 900 wstETH → redeem for ~1,043 stETH (exchange rate increased by ~4.3%)
Where wstETH is Used
- Aave V3: Accepts wstETH as collateral (not stETH directly)
- MakerDAO/Spark: wstETH as collateral for DAI borrowing
- Pendle Finance: Can split wstETH yield tokens
- Cross-chain bridges: wstETH is more portable than rebasing stETH
- Gnosis Chain / Layer 2: wstETH bridged natively
Layer 2 specific: When Lido bridges stETH to Arbitrum or Optimism, it automatically converts to wstETH format so rebasing mechanics don’t create issues on L2.
ERC-4626: The Vault Standard
The ERC-4626 “Tokenized Vault Standard” (finalized 2022) provided a unified interface for yield-bearing tokens:
Standard Interface
ERC-4626 defines:
deposit(assets, receiver)→ mints shares proportional to assets depositedredeem(shares, receiver, owner)→ burns shares and withdraws assetsconvertToShares(assets)→ preview: how many shares for X assetsconvertToAssets(shares)→ preview: how many assets for X sharestotalAssets()→ total underlying asset valuemaxDeposit/Withdraw/Redeem→ liquidity constraints
Why ERC-4626 Matters
Before ERC-4626, every yield vault had a different interface:
- Yearn’s yToken had
deposit()→pricePerShare()return - Compound’s cToken had
mint()→exchangeRateStored() - Aave’s aToken was rebasing
- No standard for integration
After ERC-4626:
- Any protocol can integrate any ERC-4626 vault with the same code
- DeFi Llama, DeBank, portfolio trackers can read any vault uniformly
- Aggregators (1inch, Li.Fi) can optimize routes through vaults
LST protocols using ERC-4626: sDAI (MakerDAO), USDY (Ondo), sUSDe (Ethena) — many yield-bearing tokens standardized on ERC-4626 after 2022.
Withdrawal Queue Mechanics
Since the Shanghai/Capella upgrade (April 2023), ETH can be withdrawn from the Beacon Chain. But the withdrawal queue creates complexity for LST protocols:
The Withdrawal Bottleneck
Ethereum limits validator exits to prevent rapid capital flight:
- Exit queue: Currently ~6–8 validators per epoch (~6.4 min) can exit
- With 1M+ validators: Queue time can be hours to weeks during high-demand periods
- LST protocols need enough exit capacity to redeem users who want ETH back
Lido (stETH) Withdrawal Model
When you request to withdraw stETH for ETH:
- Submit withdrawal request → receive NFT representing your position in queue
- Lido’s withdrawal module monitors the unfinalized withdrawal queue
- ETH from validator exits fills the queue over days/weeks
- Periodically: Lido’s withdrawal contracts distribute ETH to claimants
Timing: Normal conditions: 1–5 days; high-demand period: can be 2+ weeks
Rocket Pool (rETH) Withdrawal Model
Rocket Pool uses a combination:
- DEX liquidity (fast): Swap rETH → ETH via Uniswap/Curve at near-market rate (instant; you pay a small spread)
- Protocol withdrawal (slow): Rocket Pool’s minipool exits (node operators hold 8–16 ETH in individual validators); withdrawal time depends on node operator responsiveness
Related Terms
Sources
Buterin, V., Li, F., & Dafflon, B. (2022). ERC-4626: Tokenized Vault Standard. Ethereum Improvement Proposals, EIP-4626.
Minichino, B., & Schoedon, A. (2019). EIP-20: Token Standard. Ethereum Improvement Proposals, EIP-20.
Heimbach, L., Wang, Y., & Wattenhofer, R. (2021). Behavior of Liquidity Providers in Decentralized Exchanges. Proceedings of the ACM Web Conference 2021.
Kiayias, A., & Litos, G. (2020). A Composable Security Treatment of the Lightning Network. IEEE Computer Security Foundations Symposium 2020.
Schollmeyer, J., & Milne, A. (2021). Ethereum’s Proof-of-Stake System and Withdrawal Mechanics. Journal of Digital Banking, 5(3).