Price Oracles
Price oracles convert token balances into a common unit of account for collateral valuation, borrow capacity, and liquidation checks.
Why prices matter
Oracle prices affect the numbers users see and the rules the protocol enforces.
| Area | What the oracle helps determine |
|---|---|
| Collateral value | How much your supplied collateral is worth for a specific market |
| Debt value | How much your borrow position is worth in the same reference terms |
| Borrow capacity | Whether you can borrow more without crossing the market's limits |
| Liquidation checks | Whether a position has fallen below the required collateral level |
| Informational prices in an interface may use different sources from the vault's onchain oracle. |
Adapters, providers, and routers
The oracle system is modular, so it can support additional price sources without changing vault logic. The Euler Price Oracle library separates two roles:
- Adapters connect to one external feed or onchain pricing system and normalize its output. Adapters in the library are immutable, ungoverned, bidirectional contracts with observable configuration.
EulerRoutermaps asset pairs to providers, can resolve approved ERC-4626 shares throughconvertToAssets, and can send unresolved pairs to a fallback provider. Its configuration can remain governed or be finalized by revoking its governor.
The router's fallback is not automatic failover for a broken primary feed. It is consulted only when no pair-specific provider resolves the request after any configured vault-share conversion. If a configured provider reverts, the router propagates that error rather than switching to the fallback.
The library supports feeds such as Chainlink, Chronicle, Pyth, and RedStone, as well as onchain and rate-based sources. Curators deploy adapter instances for the feeds their markets need — the Oracle Deployer supports the available adapter types; see the Euler Price Oracle repository for the implementations.
Route examples
A vault requests a quote in its configured unit of account. The router selects the price source for that asset pair.
A major asset can often be priced from a direct provider route, such as ETH to USD.
Check the provider, heartbeat, staleness behavior, and unit of account.
If collateral is a vault share, the route first converts shares into the underlying asset value.
Check what drives the share exchange rate and whether the share vault has its own risks.
A CrossAdapter can chain two bidirectional providers through a shared asset.
Check both providers and the shared asset. CrossAdapter returns mid-point quotes and does not support distinct bid/ask pricing.
Price sources are not all the same
Markets can use different pricing approaches based on their assets and risk model.
| Pricing approach | Plain-English meaning | User-facing trade-off |
|---|---|---|
| Market-based prices | Prices are informed by active markets and liquidity. | They can track current markets closely, but may move quickly during volatile periods. |
| Reference or fixed prices | A configured reference is used, such as treating a stable asset as close to one dollar. | This can reduce noise, but may lag reality if the asset moves away from the reference. |
| Exchange-rate prices | A token is valued through its relationship to another asset, such as a share token and its underlying asset. | This is useful for yield-bearing or wrapped assets, but users should understand what drives the exchange rate. |
| Derived routes | A price is calculated through one or more intermediate assets. | This can make more markets possible, but each step adds a dependency. |
Unit of account
A unit of account is the common reference used to compare collateral and debt. It may be USDC, ETH, WBTC, or another asset. The oracle route converts both sides of a position into that unit before borrow capacity and liquidation checks are evaluated.
ERC-4626 share pricing
EulerRouter can price an ERC-4626 share by calling convertToAssets, then routing from the underlying asset to the requested quote asset.
Only vaults with suitable exchange-rate accounting should use this path. ERC-4626 does not require convertToAssets to resist manipulation, and its result does not account for liquidity, fees, slippage, or withdrawal restrictions.
CrossAdapter
CrossAdapter chains two providers through a shared asset. For example, it can quote wstETH/USD through wstETH/stETH and stETH/USD. Both providers must support both directions. CrossAdapter uses getQuote and does not provide separate bid and ask amounts.
What users should check
- Which asset is used as collateral and which asset is borrowed?
- What oracle route or price source is shown for that pair?
- Does the price source follow fast-moving market prices, a configured reference, or an exchange rate?
- How much room does the position have before liquidation?
- Is the market curated, and who can update parameters such as oracle routes or risk settings?
When prices can feel different
Vault oracle prices can differ from exchange or aggregator prices because of update schedules, reference prices, exchange-rate routes, or conservative risk settings. Check the vault's configured route when evaluating collateral values and borrow limits.
For builders and curators
Inspect configured routes onchain with the Lens contracts, use the Deploy Oracle Router guide to configure them, and see the Euler Price Oracle repository for implementation details.