Lido Wrapper (wstETH / ETH)
Oracle deep-dive for 0x4f67e4d9bd67efa28236013288737d39aef48e79 — Lido wstETH wrapper + Chainlink.
- Source: Lido Wrapper + Chainlink
- Pair: wstETH / ETH
- Score: 0.6
- Tier: Medium Risk (Elevated)
- Slug:
lido_chainlink_eth_wsteth_eth
Contract Architecture
This is a composite oracle — a single Chainlink-compatible feed address that internally chains two conversions:
- wstETH -> stETH via Lido wrapper contract (
stETH.getPooledEthByShares()) - stETH -> ETH via Chainlink stETH/ETH feed
The output is wstETH/ETH. The ETH -> USD conversion happens at the market level via a separate base_feed_two (Chainlink ETH/USD at 0x5f4ec3...).
Score Breakdown
| Component | Score Impact | Rationale |
|---|---|---|
| Base: stETH/ETH Chainlink feed | 0.7 | Established Chainlink feed, but less mature than ETH/USD |
| Wrapper dependency | -0.05 | Extra contract in the price path |
| Layered complexity | -0.05 | Two-hop derivation, not a direct feed |
| Final | 0.6 |
Risk Dimensions
Derived oracle (2 dependency layers)
The wstETH price is not directly observed — it is computed through two contracts. Each layer adds a failure mode:
- Wrapper failure: If the Lido contract's
getPooledEthByShares()returns incorrect values (bug, upgrade, governance action), the wstETH/stETH rate breaks - Chainlink feed failure: If the stETH/ETH feed goes stale, deviates, or halts, the second hop fails
Both layers must function correctly for the final price to be accurate.
Liquidity / peg deviation risk
stETH can trade below its theoretical 1:1 peg with ETH during market stress. The Chainlink stETH/ETH feed would reflect this deviation, but the wrapper conversion (wstETH -> stETH) assumes the accounting rate, not the market rate. During a depeg event, the oracle path could produce a price that diverges from the actual market value of wstETH.
Historical context: 2022 stETH depeg
In June 2022, stETH depegged to ~0.93 ETH during the 3AC/Celsius crisis. A wstETH oracle using this two-hop path would have correctly captured the depeg through the Chainlink stETH/ETH feed, but the wrapper conversion (accounting-based) would have been unaffected. The divergence between the wrapper rate and market rate creates basis risk.
Why Not High Risk (0.4)
- stETH is the most liquid LST with deep secondary markets (Curve, Uniswap, 1inch)
- Chainlink stETH/ETH feed is mature with multiple node operators
- Wrapper conversion (
getPooledEthByShares) is deterministic and immutable in the current Lido contract - The two-hop path is well-understood and widely used in DeFi (Aave, Compound, Morpho all use it)
Why Not Reference-Grade (0.9+)
- No single direct feed — relies on computation across two contracts
- stETH peg is not guaranteed (proven by 2022 event)
- Wrapper contract adds an intermediary that could theoretically be affected by Lido governance
- Price is partially computed, not fully market-discovered