#Oracle System
Exolane uses oracles to provide fair, manipulation-resistant price feeds for all trading activity.
#Overview
All prices on Exolane come from Pyth Network, a high-fidelity oracle designed for DeFi.
| Aspect | Detail |
|---|---|
| Provider | Pyth Network |
| Update Frequency | Sub-second |
| Staleness Threshold | 40 seconds |
| Data Sources | Major exchanges, market makers |
#Why Pyth Network?
#Speed
- Updates every ~400ms
- Critical for trading accuracy
- Reflects real-time market conditions
#Accuracy
- Aggregates from 50+ data sources
- Includes major CEX and DEX data
- Weighted by quality and volume
#Decentralization
- Multiple independent publishers
- No single point of failure
- Cross-chain availability
#How Prices Are Used
#Position Valuation
Position Value = Size × Oracle Price
PnL = Size × (Current Price - Entry Price)#Margin Calculation
Effective Margin = Collateral + Unrealized PnL
(Unrealized PnL uses oracle price)#Order Execution
All orders settle at the oracle price
at the time of settlement#Liquidation
Liquidation triggers when:
Position Value at Oracle Price → Margin < Maintenance#Oracle Freshness
#Staleness Window: 40 Seconds
If the oracle hasn't been updated in 40 seconds, the system pauses:
| Affected | When Stale |
|---|---|
| Opening positions | ❌ Blocked |
| Closing positions | ❌ Blocked |
| Liquidations | ❌ Blocked |
| Margin changes | ❌ Blocked |
#Why This Matters:
Protection against:
- Acting on outdated prices
- Exploitation during oracle downtime
- Price manipulation windows
Once oracle updates:
- All operations resume immediately
- Pending orders can settle
#Oracle Update Flow
1. Pyth publishes new price
↓
2. Keeper submits price to Exolane
↓
3. Oracle validates:
- Timestamp is recent
- Price is within bounds
- Publisher signatures valid
↓
4. Price is accepted
↓
5. Pending orders settle at new price#Price Display vs. Settlement
#What You See:
The UI shows the latest oracle price, updating in real-time.
#What You Get:
Orders settle at the oracle price at settlement time, not submission time.
#Why the Difference?
| Benefit | Explanation |
|---|---|
| No front-running | Can't race to beat your order |
| Fair execution | Everyone in same window gets same price |
| MEV protection | Reduces extraction opportunities |
#Example:
You submit order at 12:00:00
Displayed price: $100,000
Oracle updates at 12:00:02
New price: $100,050
Your order settles at: $100,050Settlement price may differ slightly from displayed price. This is normal and protects against manipulation.
#Available Price Feeds
| Market | Pyth Price Feed ID |
|---|---|
| BTC/USD | 0xe62df6c8...415b43 |
| ETH/USD | 0xff61491a...fd0ace |
| SOL/USD | 0xef0d8b6f...0b56d |
| BNB/USD | 0x2f95862b...1c4f |
| XRP/USD | 0xec5d3998...ea1c8 |
| DOGE/USD | 0xdcef50dd...d25c |
| XMR/USD | 0x46b8cc93...321d |
| AVAX/USD | 0x93da3352...7bb7 |
| LINK/USD | 0x8ac0c70f...d221 |
| SUI/USD | 0x23d73151...5744 |
Each market is linked to a specific Pyth price feed at deployment.
#Oracle Security
#Multiple Publishers
Price is aggregated from multiple independent publishers, preventing single-source manipulation.
#Confidence Intervals
Pyth provides confidence intervals. Exolane uses the aggregate price when confidence is high.
#Timestamp Validation
Prices older than 40 seconds are rejected, preventing stale price attacks.
#On-Chain Verification
All price updates are verified on-chain with publisher signatures.
#Edge Cases
#Oracle Downtime
If Pyth experiences issues:
- Oracle becomes stale after 40 seconds
- All trading operations pause
- No liquidations occur
- Resume when fresh prices arrive
#Price Spikes
If a sudden price move occurs:
- Price is validated against Pyth aggregate
- If legitimate, trading continues normally
- Positions may be liquidated at new price
- Stop-losses may trigger
#Flash Crashes
Exolane's oracle-based settlement provides protection:
- Orders settle at next oracle update
- Brief wicks may not trigger liquidations
- Price must persist through oracle update
#Oracle Fees
There are small oracle-related costs:
| Fee | Who Pays | Amount |
|---|---|---|
| Commitment Gas | Keeper (passed to user) | ~$0.001 |
| Settlement Gas | Keeper (passed to user) | ~$0.001 |
These are included in execution costs and are typically negligible.
#Transparency
All oracle prices are:
- Public — Viewable on-chain
- Verifiable — Check Pyth directly
- Historical — Past prices queryable
You can verify any settlement price after the fact.
#Oracle FAQ
#Q: Can the team manipulate prices?
No. Prices come from Pyth Network, an independent oracle. Exolane cannot modify price feeds.
#Q: What if Pyth goes down?
Trading pauses until fresh prices arrive. No trading or liquidations on stale prices.
#Q: Why didn't I get the price I saw?
Orders settle at next oracle price, not the displayed price. This prevents front-running.
#Q: Are prices the same as Binance/Coinbase?
Similar, but not identical. Pyth aggregates from multiple sources including those venues.
#Q: What's the maximum price lag?
40 seconds. After that, the system pauses until fresh data arrives.
#Summary
| Aspect | Detail |
|---|---|
| Provider | Pyth Network |
| Update Speed | ~400ms |
| Max Staleness | 40 seconds |
| Manipulation Risk | Low (aggregated, multi-source) |
| Downtime Handling | Trading pauses |
| Verification | On-chain, public |