Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Price Oracles

Price oracles convert token balances into a common unit of account for collateral valuation, borrow capacity, and liquidation checks.

Oracle flowFrom market prices to your position health
Price sourcesMarket feeds, exchange rates, and configured reference prices publish values for assets.
Oracle routeEuler follows the route selected for the vault and converts assets into a common reference.
Your positionThe configured vault oracle values collateral and liability for borrow-capacity and liquidation checks.
Collateral valueWhat your supplied assets count for
Debt valueWhat your borrowed assets count against
Health checksWhether the account remains above liquidation thresholds

Why prices matter

Oracle prices affect the numbers users see and the rules the protocol enforces.

AreaWhat the oracle helps determine
Collateral valueHow much your supplied collateral is worth for a specific market
Debt valueHow much your borrow position is worth in the same reference terms
Borrow capacityWhether you can borrow more without crossing the market's limits
Liquidation checksWhether 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.
  • EulerRouter maps asset pairs to providers, can resolve approved ERC-4626 shares through convertToAssets, 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.

Case 1Direct feed

A major asset can often be priced from a direct provider route, such as ETH to USD.

ETHCollateralChainlinkETH / USDUSDValue

Check the provider, heartbeat, staleness behavior, and unit of account.

Case 2Vault share pricing

If collateral is a vault share, the route first converts shares into the underlying asset value.

eUSDCShareconvertToAssetsShare -> USDCUSDCUnit

Check what drives the share exchange rate and whether the share vault has its own risks.

Case 3CrossAdapter route

A CrossAdapter can chain two bidirectional providers through a shared asset.

TOKENBaseTOKEN / ETHETH / USDUSDQuote

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 approachPlain-English meaningUser-facing trade-off
Market-based pricesPrices are informed by active markets and liquidity.They can track current markets closely, but may move quickly during volatile periods.
Reference or fixed pricesA 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 pricesA 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 routesA 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.