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
Adapter | Type | Method | Supported Pairs | Parameters |
---|---|---|---|---|
ChainlinkOracle | External | Push | Provider feeds | feed, max staleness |
ChronicleOracle | External | Push | Provider feeds | feed, max staleness |
PythOracle | External | Pull | Provider feeds | feed, max staleness, max confidence interval |
RedstoneCoreOracle | External | Pull | Provider feeds | feed, max staleness, cache ttl |
LidoOracle | Onchain | Rate | wstETH/stETH | - |
LidoFundamentalOracle | Onchain | Rate | wstETH/ETH | - |
UniswapV3Oracle | Onchain | TWAP | UniV3 pools | fee, twap window |
PendleOracle | Onchain | TWAP | Pendle markets | pendle market, twap window |
RateProviderOracle | Onchain | Rate | Balancer rate providers | rate provider |
FixedRateOracle | Onchain | Rate | Any | rate |