#Settlement
Settlement is the process by which orders are executed and positions are updated. Exolane uses oracle-based settlement for fair execution.
#What is Settlement?
Settlement is when your order is executed and your position is created or modified:
Order Submitted → Pending → Oracle Update → Settlement → Position Active#Settlement Flow
#Step-by-Step:
1. USER SUBMITS ORDER
└── Transaction sent to Arbitrum
2. ORDER ENTERS PENDING STATE
└── Waiting for oracle price
3. ORACLE UPDATES
└── Keeper submits new Pyth price
4. ORDER SETTLES
└── Executed at oracle price
5. POSITION UPDATED
└── Balances, PnL, margin recalculated#Timeline:
| Phase | Typical Duration |
|---|---|
| Submit → Pending | < 1 second |
| Pending → Settlement | 1-5 seconds |
| Settlement → Complete | < 1 second |
#Why Oracle-Based Settlement?
#The Problem with Instant Execution:
Traditional Exchange:
12:00:00.000 - You see price: $100,000
12:00:00.010 - You submit buy
12:00:00.005 - MEV bot already bought (front-run!)
12:00:00.015 - You get worse price: $100,100#Exolane's Solution:
Exolane:
12:00:00.000 - You see price: $100,000
12:00:00.010 - You submit buy (enters pending)
12:00:02.000 - Oracle updates: $100,050
12:00:02.001 - All pending orders settle at $100,050
Everyone gets the same price. No front-running.#Benefits of Oracle Settlement
| Benefit | Description |
|---|---|
| No front-running | Can't race ahead of other orders |
| Fair execution | Same price for all in settlement batch |
| MEV protection | Eliminates sandwich attacks |
| Manipulation resistant | Can't game execution price |
| 0% local-liquidity slippage | Position size and Exolane order flow do not move the execution price |
| Predictable | Always the oracle price |
#Settlement Price
#What Determines Your Price?
Your order executes at the next valid oracle price after your order enters pending state. Position size and other Exolane orders do not move that price; only the oracle update determines it.
#You Cannot Control:
- The exact settlement price
- The timing of oracle updates
- Priority over other orders
#You Can Control:
- Whether to use market or limit orders
- Your limit price (for limit orders)
- When you submit the order
#Pending State
While pending, your order:
- Is committed — Cannot be front-run
- Awaits oracle — Needs fresh price
- Can be cancelled — Until settlement
#Pending Limits:
| Limit | Value |
|---|---|
| Max pending per account per market | ~100 |
| Max pending global per market | ~10,000 |
If limits are reached, new orders are blocked until existing ones settle.
#Settlement Timing
#Oracle Granularity
Oracle updates have a minimum interval (granularity):
If granularity = 10 seconds:
Order at 12:00:05 → Settles at 12:00:10
Order at 12:00:15 → Settles at 12:00:20#Current Settings:
| Parameter | Value |
|---|---|
| Oracle granularity | Market-dependent |
| Typical settlement | 1-5 seconds |
| Maximum wait | Until oracle updates |
#Order Types and Settlement
#Market Orders
Settle at: Next valid oracle price
Fill: Yes, if margin is sufficient
Price impact from size: None on Exolane#Limit Orders
Settle at: Oracle price (if limit condition met)
Fill: Only if price reached
Price impact from size: None on Exolane#Stop-Loss / Take-Profit
Trigger: When oracle reaches trigger price
Settle at: Oracle price at trigger
Execution: As market order from trigger#What Can Delay Settlement?
#Stale Oracle
If oracle hasn't updated in 40 seconds:
- Settlement pauses
- Orders remain pending
- Resume when fresh price arrives
#Network Congestion
If Arbitrum is congested:
- Transactions take longer
- Keepers may delay price submission
- Eventually settles when included
#Pending Limit Hit
If too many pending orders:
- New orders rejected
- Existing orders settle normally
- Try again after settlement
#After Settlement
Once settled, your order is final:
- Position is created/modified
- PnL is calculated
- Margin is allocated
- Cannot be reversed
#Checking Settlement Status
#Order States:
| State | Meaning |
|---|---|
| Pending | Submitted, awaiting oracle |
| Settled | Executed successfully |
| Cancelled | Cancelled before settlement |
| Failed | Rejected (insufficient margin, etc.) |
#In the UI:
- Pending orders show in "Orders" tab
- Settled positions show in "Positions" tab
- History shows all past orders
#Settlement Fees
| Component | Cost |
|---|---|
| Trading Fee | 0.02% of position value |
| Gas (Arbitrum) | ~$0.01 |
| Keeper Fee | Included in gas |
#Edge Cases
#Price Moves While Pending
You submit at $100,000
Oracle updates to $105,000
You settle at $105,000 (not $100,000)This is expected behavior. It reflects oracle timing, not price impact from your order size. Use limit orders for tighter price control.
#Multiple Orders Same Settlement
If you have multiple pending orders that settle together:
- All execute at same oracle price
- Net position is the sum
- Fees calculated on net change
#Order Cancelled During Pending
If you cancel before settlement:
- Order is marked cancelled
- No position change
- Only gas cost incurred
#Settlement vs. Other Exchanges
| Feature | Exolane | Order Book Exchange |
|---|---|---|
| Execution Price | Oracle | Best bid/ask |
| Order Size Impact | None on execution price | Depends on order book depth |
| Front-Running | Not possible | Possible |
| MEV Extraction | Protected | Vulnerable |
| Price Certainty | Next oracle | Immediate |
| Fairness | High | Variable |
#FAQ
#Q: Why didn't I get the price I saw?
Your order settles at the next valid oracle price, not the displayed price. If the oracle moves while your order is pending, the final price moves with it. That is oracle timing, not slippage caused by your trade size or low local liquidity on Exolane.
#Q: How long do I wait for settlement?
Usually 1-5 seconds. If oracle is stale or network congested, it may take longer.
#Q: Can I speed up settlement?
No. Settlement depends on oracle updates and keeper activity, not user action.
#Q: What if oracle never updates?
After 40 seconds of staleness, the system pauses. Your order remains pending until fresh prices arrive.
#Q: Is there slippage protection?
There is 0% slippage from local liquidity on Exolane. Market orders settle at the next valid oracle price, and limit orders settle only if their limit condition is met.
#Summary
| Aspect | Detail |
|---|---|
| Mechanism | Oracle-based |
| Typical Time | 1-5 seconds |
| Price Source | Pyth Network |
| Front-Run Protection | Yes |
| Cancellable While Pending | Yes |