Deployment & Configuration of Oracle Router
The Oracle Router is a required component of the Euler protocol. Every vault must be connected to an Oracle Router to obtain reliable, on-chain price feeds for its underlying asset and all accepted collateral. The router enables flexible, modular pricing paths and can be managed either from its dedicated UI page or during vault configuration. It is recommended that all vaults in a cluster share a single router, ensuring consistent pricing and risk management.
Available Oracles
Before deploying your own Oracle Router, check the Euler Oracles Dashboard to see if there are existing oracles that meet your needs. The dashboard provides a comprehensive overview of all available oracles, their configurations, and their current status. Using an existing oracle can save time and reduce deployment complexity.
Quick Start
-
Deploy the Oracle Adapter
- If you cannot find a suitable oracle from above, then you can choose to deploy your own through the Oracle Deployer (oracle-deployer.euler.finance)
- From here, you can configure and deploy a new oracle. Make sure to do an explorer verification and submit a PR for whitelisting.
-
Deploy the Oracle Router
- Go to the Oracle section of the Creator UI (create.euler.finance)
- Click "Deploy New Oracle Router" and confirm the transaction.
-
Configure Oracle Adapters
- On the router management page, add adapters for each asset/unit-of-account pair you need (e.g., DAI/USD, WETH/USD).
- For ERC-4626 assets (like sDAI), you may need to "resolve" the vault so the router can price the share in terms of its underlying (e.g., sDAI/DAI).
-
Set Resolved Vaults
- For every ERC-4626 vault you use as collateral, you must add it as a resolved vault in the Oracle Router. This enables the router to price the collateral share in terms of its underlying asset using
convertToAssets(). - For example, if your collateral is esDAI (an ERC-4626 vault holding sDAI, which is itself an ERC-4626 vault for DAI), the router will price esDAI/sDAI, then sDAI/DAI, and finally DAI/USD, forming a complete pricing path:
esDAI/sDAI → sDAI/DAI → DAI/USD
- For every ERC-4626 vault you use as collateral, you must add it as a resolved vault in the Oracle Router. This enables the router to price the collateral share in terms of its underlying asset using
-
Install the Router in Your Vault
- When deploying or configuring a vault, select your Oracle Router and unit of account. The vault will use the router for all collateral and liability pricing.
-
Create a PR in the Euler Interfaces Repo
- If you haven't already done so, you need to:
- Perform an Explorer Verfication for the adapters you deployed.
- Submit a PR on the
euler-interfacesrepo by adding your deployments to theOracleAdaptersAddresses.csvfile.
- If you haven't already done so, you need to:
Adapters & Resolved Vaults
Adapters
Each adapter links a token (or vault) to a unit of account (e.g., USD or WETH). You must add an adapter for every asset you want to price.
Resolved Vaults
You must register each collateral vault as resolved so the router can use the convertToAssets() function to price shares in terms of the underlying asset. This is essential essential for every collateral as each collateral is an ERC-4626 vault.
Example
If your collateral is esDAI (an ERC-4626 vault holding sDAI, which is itself an ERC-4626 vault for DAI), the router must be able to resolve:
- esDAI/sDAI (via
convertToAssets) - sDAI/DAI (via
convertToAssets) - DAI/USD (via a standard oracle adapter)
Another Example:
If your collateral is a DAI vault (eDAI), the router must be able to resolve:
- eDAI/DAI (via
convertToAssets) - DAI/USD (via a standard oracle adapter)
Explorer Verification
As part of the process of whitelisting adapters, you need to make sure that the contracts for the adapters are verified through the respective block explorer.
Steps
- Through the Oracle Deployer UI, open the dot menu (three dots) on the oracle card
- Download the Standard JSON Input file
- Go to the verification form for the respective explorer (e.g., Etherscan for Ethereum mainnet) and enter the following:
- Compiler Type: Solidity (Standard-Json-Input)
- Compiler Version: v0.8.24+commit.e11b9ed9
- License: GNU GPLv2
- Upload the Standard JSON Input file
- Verify and Publish
Best Practices
- Plan Your Pricing Paths:
Before deploying, map out the full pricing path for each collateral:
Vault Share → Underlying → Unit of Account - Governance:
Assign a secure governor to the router for future updates. - Consistency:
Use the same router for all vaults in a cluster to avoid pricing discrepancies. - UI Flexibility:
You can configure the router from its dedicated page or while setting up a vault — both methods are equivalent.