Skip to main content

Oracle Adapters

An adapter is a minimal, fully immutable contract that queries an external price feed. It is the atomic building block of the Euler Price Oracles library.

Design Principles

The IPriceOracle interface is permissive in that it does not prescribe a particular way to implement it. However the adapters in this library adhere to a strict set of rules that we believe are necessary to enable safe, open, and self-governed markets to flourish.

Immutable

Adapters are fully immutable without governance or upgradeability.

Minimally Responsible

An adapter connects to one pricing system and queries a single price feed in that system.

Bidirectional

An adapter works in both directions. If it supports quoting X/Y it must also support Y/X.

Observable

An adapter's parameters and acceptance logic are easily observed on-chain.

Summary of Adapters

AdapterTypeMethodSupported PairsParameters
ChainlinkOracleExternalPushProvider feedsfeed, max staleness
ChronicleOracleExternalPushProvider feedsfeed, max staleness
PythOracleExternalPullProvider feedsfeed, max staleness, max confidence interval
RedstoneCoreOracleExternalPullProvider feedsfeed, max staleness, cache ttl
LidoOracleOnchainRatewstETH/stETH-
LidoFundamentalOracleOnchainRatewstETH/ETH-
UniswapV3OracleOnchainTWAPUniV3 poolsfee, twap window
PendleOracleOnchainTWAPPendle marketspendle market, twap window
RateProviderOracleOnchainRateBalancer rate providersrate provider
FixedRateOracleOnchainRateAnyrate