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

text
Order Submitted → Pending → Oracle Update → Settlement → Position Active

#Settlement Flow

#Step-by-Step:

text
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:

text
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:

text
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):

text
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

text
Settle at: Next oracle price
Fill: Yes, if margin is sufficient
Price slippage: Possible

#Limit Orders

text
Settle at: Oracle price (if limit condition met)
Fill: Only if price reached
Price slippage: No 

#Stop-Loss / Take-Profit

text
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

text
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

#Next Steps

Type to search…