#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-10 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 |
| Predictable | Always the oracle price |
#Settlement Price
#What Determines Your Price?
Your order executes at the next oracle price after your order enters pending state.
#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-10 seconds |
| Maximum wait | Until oracle updates |
#Order Types and Settlement
#Market Orders
Settle at: Next oracle price
Fill: Yes, if margin is sufficient
Price slippage: Possible#Limit Orders
Settle at: Oracle price (if limit condition met)
Fill: Only if price reached
Price slippage: No #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. Use limit orders for 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 |
| 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 oracle price, not the displayed price. This is by design to prevent front-running.
#Q: How long do I wait for settlement?
Usually 1-10 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?
For market orders, no — you get the oracle price. For limit orders, yes — your limit price is respected.
#Summary
| Aspect | Detail |
|---|---|
| Mechanism | Oracle-based |
| Typical Time | 1-10 seconds |
| Price Source | Pyth Network |
| Front-Run Protection | Yes |
| Cancellable While Pending | Yes |