The Oracle program has been audited by Zenith and Offside.
Oracle Program Address:
jupnw4B6Eqs7ft6rxpzYLJZYSnrpRgPcr589n5Kv4ocHop-Based Oracle System
The system computes exchange rates by processing prices from up to four sources in a sequential chain. Each source contributes to the final rate through multiplication or division, with the option to invert values as needed. The Oracle program integrates price data from Chainlink, Pyth, and Redstone. For example, to derive the JUPSOL/SOL rate, the system combines JUPSOL/USD and SOL/USD feeds, inverting the latter to obtain USD/SOL, resulting in an accurate exchange rate. This design enables the system to:- Aggregate rates from multiple feeds, reducing dependency on any single provider.
- Adjust for varying units or scales using predefined multipliers and divisors.
- Validate data integrity at each step.
Freshness Enforcement
To ensure prices reflect current market conditions, the system enforces strict time-based validity checks:- User operations: Prices must be no older than 600 seconds (10 minutes) to be considered valid for actions like borrowing or supplying assets.
- Liquidations: Prices can be up to 7,200 seconds (2 hours) old. The requirement is deliberately looser so that liquidations can proceed during temporary oracle delays and keep the protocol safe.
Confidence Interval Validation
The system evaluates the confidence interval provided by Pyth price feeds to ensure data reliability:- User operations: The confidence interval must be within 2% of the reported price.
- Liquidations: The confidence interval must be within 4% of the reported price.
Providers
The Oracle system sources data from multiple providers for reliability and redundancy:- Chainlink — Primary provider for most vaults.
- Pyth Network — Used for the remaining feeds. A migration of these to the new Pyth Core is planned.
- Redstone — Complements Chainlink and Pyth feeds for certain tokens.
Contract-Based Pricing
Some asset prices are derived directly from on-chain contracts instead of external oracle feeds. This approach ensures real-time accuracy for yield-bearing and staking tokens whose value changes based on redemption or staking rates. Currently, contract-based pricing is used for:- JITOSOL/SOL — Price read directly from the stake pool contract.
- mSOL/SOL — Price read from the Marinade stake pool.
- JUPSOL/SOL — Tracked through a Pyth redemption rate feed reflecting on-chain value.
- syrupUSDC/USDC, INF/SOL, PST/USDC — Tracked through Pyth redemption rate feeds.
Stablecoin Pegs
For stablecoins such as USDC, USDT, USDG, and USDS, the Oracle maintains a 1:1 peg with USD. These assets use direct USD-pegged price feeds to ensure consistent valuations across all vaults and lending products. This design minimizes volatility and simplifies calculations during borrow and liquidation events.Oracle Interaction with Liquidations
Oracle prices are directly used to evaluate and determine liquidation events. Each asset has predefined thresholds:- Liquidation Threshold (LT): When the debt-to-collateral ratio exceeds this value, the vault becomes eligible for partial liquidation through the tick-based system.
- Liquidation Max Limit (LML): If the ratio surpasses this limit, the position exits the tick system and is fully liquidated.

