# Oracles

Curvance’s oracle system is designed to protect the platform and users from unsafe price feeds. It checks whether prices are fresh, applies guardrails to assets that should move within predictable ranges, and uses oracle values to sanity-check protocol swaps. Together, these protections help reduce the chance that stale data, sudden price spikes, or poor swap execution can create unsafe borrowing, redemption, liquidation, or zap outcomes.

<figure><img src="/files/iNgIedHbdhVLb90aTei4" alt=""><figcaption></figcaption></figure>

#### Freshness Validation

Curvance enforces per‑asset heartbeat checks to ensure timely price updates. Stale or missing feeds are ignored; prolonged staleness can trigger asset‑level circuit breakers.

* **Heartbeat checks:** If a feed misses its heartbeat window, it’s excluded from pricing until fresh data arrives.
* **Targeted pauses:** Sustained staleness or divergence pauses new borrows/redemptions for that asset.

***Example:***&#x20;

*If one ETH price source stops updating, Curvance uses the other and puts the asset in a cautious state: new borrowing and redemptions are paused, while liquidations still proceed to protect lenders. If the two sources later differ by a lot, the asset is fully frozen (including liquidations), until prices align; smaller differences keep it in the cautious state.*

#### Adaptive Price Guards

Price guards apply conservative min/max bands to filter outliers. Bands can be static for stable assets or dynamic—gradually increasing the ceiling—to follow sustained uptrends while blocking sudden spikes.

* **Static vs. dynamic:** Static caps for tightly pegged assets; dynamic bands lift the maximum price over time (small increase‑per‑second) to reflect real yield accrual.

***Example:***&#x20;

*sAUSD accrues yield above $1.00. The guard sets a floor at, say, $0.995 and a dynamic ceiling that starts near $1.00 and inches up daily.*

* *If a feed prints $0.98, it’s rejected (below floor).*
* *If a feed spikes to $1.05 instantly, it’s capped to the current ceiling (e.g., $1.01).*
* *In steady markets, the ceiling rises gradually with yield, allowing sAUSD to price above $1 without triggering false liquidations.*

### Safer Swaps

Curvance also uses oracle pricing to protect protocol-managed swaps. Some user actions, such as zaps or position-management flows, may route through external swap aggregators. Before Curvance accepts the result, the swap is checked against both the swap instructions and the oracle value of the tokens involved.

**Calldata checks:** Curvance verifies that the swap call matches the expected input token, input amount, output token, target, and recipient before execution.

**Value checks:** After the swap executes, Curvance compares the oracle value of what went in with the oracle value of what came out.

**Slippage enforcement:** If the received output is worth less than the allowed slippage threshold, the transaction reverts. If Curvance cannot safely price either token, the swap also reverts.

***Example:***&#x20;

*A user routes a zap that swaps $1,000 of USDC into WETH. The external router may include its own minimum-output check, but Curvance adds another layer by comparing the oracle value of the USDC spent against the oracle value of the WETH received. If the swap only returns $940 of WETH value and the allowed slippage is 3%, Curvance rejects the swap instead of accepting the poor execution.*

### Preferred Oracle Partners

When available Curvance leverages Chainlink feeds to price listed assets. This is due to the highly secure technical assumptions and MEV architecture Chainlink Oracles offer. In cases where Chainlink oracles are unavailable other oracle solutions may be temporarily utilized.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.curvance.com/app/protocol-overview/liquidity-markets/oracles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
