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 Pyth, Chainlink, 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 300 seconds to be considered valid for actions like borrowing or supplying assets.
- Liquidations: Prices can be up to 1800 seconds (30 minutes) old, allowing liquidations to proceed during temporary oracle delays while avoiding reliance on outdated data.
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:- Pyth Network — Primary provider for most asset prices.
- Chainlink — Used for additional market validation and redundancy.
- Redstone — Complements Pyth and Chainlink 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.

