wstETH (L2)
Custom price feed for Lido Wrapped Staked ETH on L2 chains.
Last updated
Custom price feed for Lido Wrapped Staked ETH on L2 chains.
Custom price feed for Lido Wrapped Staked ETH on L2 chains. No direct wstETH/USD feed exists, so the price is composed from a Chainlink wstETH/ETH feed and a Chainlink ETH/USD feed.
Source: wstETH_L2_CustomPriceFeed.sol
L2 feed. For the Ethereum mainnet feed, see wstETH.
Chainlink wstETH/ETH × ETH/USD — the ETH/USD term is read from the NAV's own primary feed via getPriceData(WETH), not a hardcoded oracle.
The ETH/USD term is sourced from the NAV's own selector — see Base/USD from the NAV's own selector.
wstETH/ETH
Chainlink wstETH/ETH feed (latestRoundData)
wstETH price in ETH (18 dec)
ETH/USD
NAV base — getPriceDataNoDivergence(WETH) (8 dec)
the NAV's primary WETH/USD price
The wstETH/ETH feed already embeds the Lido exchange rate, so no on-chain rate call is made. The divisor is 10 ** wstETHToETH.decimals(). Output is 8 decimals (inherited from the ETH/USD term via _decimals).
wstEth_
wstETH token address (the supported underlying asset)
wstEthToEthChainlink_
Chainlink wstETH/ETH aggregator
wstEthToEthHeartbeat_
Staleness window (seconds) for the wstETH/ETH feed
nav_
NAVCalculator (proxy) — supplies the base asset's USD price via getPriceDataNoDivergence
baseAsset_
the registered base asset whose USD price is read (WETH)
getLatestPrice() returns stale = true if the wstETH/ETH feed satisfies block.timestamp − updatedAt ≥ heartbeat, if its answer is ≤ 0, if its updatedAt is in the future (clamped to block.timestamp before the check), or if the NAV reports the base asset (WETH) stale — all its feeds stale. The base leg's updatedAt now comes from the NAV's selected WETH feed. The reported updatedAt is the older (smaller) of the two legs.
Deployed on Arbitrum, Base, and Gnosis. The Ethereum mainnet counterpart is wstETH (Mainnet), which derives the rate from stEthPerToken() instead of a wstETH/ETH feed.
Last updated
price = (wstETH/ETH) × (ETH/USD, NAV-selected) / 10^(wstETH/ETH decimals)constructor(
address wstEth_,
address wstEthToEthChainlink_,
uint256 wstEthToEthHeartbeat_,
address nav_,
address baseAsset_
)