Liquid Staking Token Standard

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?

  1. Rebasing model: Your stETH balance automatically increases to 1.04 stETH (still 1:1 with ETH per share)
  2. 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:

  1. 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)
  2. Mapping inconsistencies: Many smart contracts store balances in a mapping; the balance changes outside the contract’s execution
  3. Lending protocol incompatibility: Aave V2 originally couldn’t support stETH as collateral due to rebasing mechanics
  4. 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

  1. Hold stETH → deposit into wstETH contract
  2. Receive wstETH shares: Number of wstETH shares based on current stETH/shares ratio
  3. Your wstETH balance never changes (like rETH)
  4. The exchange rate (wstETH → stETH) grows as rebases occur in the underlying stETH
  5. 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 deposited
  • redeem(shares, receiver, owner) → burns shares and withdraws assets
  • convertToShares(assets) → preview: how many shares for X assets
  • convertToAssets(shares) → preview: how many assets for X shares
  • totalAssets() → total underlying asset value
  • maxDeposit/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:

  1. Submit withdrawal request → receive NFT representing your position in queue
  2. Lido’s withdrawal module monitors the unfinalized withdrawal queue
  3. ETH from validator exits fills the queue over days/weeks
  4. 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).