ezETH (L2)
Custom price feed for Renzo ezETH on L2 chains.
Last updated
Custom price feed for Renzo ezETH on L2 chains.
Custom price feed for Renzo ezETH on L2 chains. No direct ezETH/USD feed exists, so the price is composed from Renzo's bridged ezETH/ETH rate and the NAV's primary ETH/USD price.
Source: ezETH_L2_CustomPriceFeed.sol
L2 feed. For the Ethereum mainnet feed, see ezETH.
xRenzoDeposit.getRate() × NAV primary ETH/USD
The ETH/USD term is sourced from the NAV's own selector — see Base/USD from the NAV's own selector.
getRate()
IxRenzoDeposit.getRate()
ezETH/ETH rate relayed from L1 by a keeper (18 dec)
ETH/USD
NAV base — getPriceDataNoDivergence(WETH) (8 dec)
the NAV's primary WETH/USD price
The ezETH/ETH rate is read from Renzo's xRenzoDeposit contract, which receives the value from Ethereum mainnet via a cross-chain keeper. The divisor is the fixed 1e18. Output is 8 decimals (inherited from the ETH/USD feed).
ezEth_
ezETH token address (the supported underlying asset)
xRenzoDeposit_
Renzo xRenzoDeposit contract exposing getRate()
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 if getRate() returns 0, or if the NAV reports the base asset (WETH) stale — all its feeds stale. The base leg's updatedAt comes from the NAV's selected WETH feed.
getRate() exposes no rate timestamp, so the ezETH/ETH rate has no independent age check. If Renzo's L1→L2 keeper lags (e.g. during sequencer downtime recovery) a stale rate may pass undetected. This is an architectural constraint of xRenzoDeposit.
Deployed on Arbitrum. The Ethereum mainnet counterpart is ezETH (Mainnet), which reads the Renzo reporter rate against ETH/USD.
Last updated
price = xRenzoDeposit.getRate() × (ETH/USD) / 1e18constructor(
address ezEth_,
address xRenzoDeposit_,
address nav_,
address baseAsset_
)