> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jup.ag/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracles & Contract-Priced

> How Jupiter Lend prices vaults: oracle providers, redemption and exchange rates, freshness checks, and how to read a vault's oracle details in the app.

The Oracle Program ensures accurate and reliable price data by integrating multiple trusted oracle providers and on-chain sources. It calculates exchange rates by combining multiple price sources in a structured sequence, ensuring reliable asset valuations.

<Note>
  The Oracle program has been audited by Zenith and Offside.
  Oracle Program Address: `jupnw4B6Eqs7ft6rxpzYLJZYSnrpRgPcr589n5Kv4oc`
</Note>

## Hop-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, the JupSOL / USDC vault multiplies the JupSOL/SOL rate read from the JupSOL stake pool by the SOL/USD price from Chainlink.

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.

These checks prevent the protocol from using stale prices for liquidation or Position Health calculations.

## 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.

If a price feed's confidence exceeds these thresholds, it is rejected.

## 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.

In addition to market price feeds, Jupiter Lend prices some assets on a redemption or exchange rate.

## Contract-Based Pricing

Pegged and yield-bearing assets are priced on a rate that tracks what the token is worth in its underlying asset, rather than on a market price. Some of these rates are read directly from the asset's own contract; others come from a rate feed published by an oracle provider.

Read from the asset's contract:

* JupSOL, JitoSOL, dfdvSOL, fwdSOL, japanSOL: the SPL stake pool's accounting rate, SOL under management divided by the tokens outstanding. The rate is rejected if the pool has not been updated during the current epoch or if a deposit or withdrawal fee exceeds 0.5%.
* mSOL: Marinade's accounting rate, the SOL backing the pool divided by the mSOL supply.
* PST: the PST pool's accounting rate, the USD value of the pool's assets divided by the PST supply.

Published by an oracle provider:

* INF: Pyth's INF/SOL redemption rate feed.
* syrupUSDC: Chainlink's syrupUSDC-to-USDC exchange rate feed.
* sUSDai: Chainlink's sUSDai-to-USDai exchange rate feed, updated about every 8 minutes with an 11-minute staleness check.

These rates are not market prices: they can differ from the amount you would receive by selling or redeeming the token.

All other pairs use market price feeds from Chainlink, Pyth, or Redstone.

## 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 <Tooltip tip="The status showing how close your debt-to-collateral ratio is to the Liquidation Threshold.">Position Health</Tooltip> 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.

These calculations rely on real-time oracle prices validated by the freshness and confidence interval checks described above.

## See how a vault is priced

Every vault in the Borrow, Multiply and Smart Vaults lists has a globe button, on its row or its card, that opens the vault's **Oracle** details.

The first view shows the vault's price, as one unit of collateral in the debt asset (for example `1 PST = 1.13 USDC`), the oracle address with an explorer link and a copy button, and a one-line description of how the price is built, including whether a fallback oracle is used.

**Show More** adds:

* The Operate Price, used for deposits, withdrawals, borrows and repayments, and the Liquidation Price, used to check whether a position can be liquidated. They can differ, because user operations and liquidations accept different price ages and confidence intervals (see above).
* The type of each source: Market price, Redemption rate, or Exchange price.
* The Price Route: the sources multiplied together, or divided for an inverted leg, to reach the price.
* One card per leg, with its provider, its current value, its oracle address, and an explanation of what it measures and when it was last updated.

On a [Smart Vault](/user-docs/earn/lend/smart-vaults), a paired side is priced in shares rather than in tokens, for example `1 PST = 0.56 debt shares`. See [the Smart Vaults walkthrough](/user-docs/earn/lend/guides/using-smart-vaults#rates-oracle-and-caps-on-a-smart-vault).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.