Skip to content
🌐Network: Mainnetβ–Ό

Fee Structure & Calculations ​

o2 Exchange uses a transparent fee structure designed to reward liquidity providers and maintain a healthy trading ecosystem.

Fee Types ​

Trading Fees:

  • Maker fees - When you add liquidity to the order book
  • Taker fees - When you remove liquidity from the order book
  • No hidden fees - What you see is what you pay

How Fees Work ​

o2 Exchange fees are determined by when your order executes, not by order type or buy/sell direction. This is based on the order book smart contract's storage mechanism.

Fee TypeMaker (0.00% - FREE!)Taker (0.01%)
What happensOrder stored in contract, waits for matchOrder executes in same transaction
LiquidityAdds liquidity to order bookRemoves liquidity from order book
ExamplesLimit order below/above spreadMarket orders, aggressive limit orders

The Storage Rule ​

Maker = Stored in contract β†’ 0.00% (FREE)

  • Your order is stored in the on-chain order book
  • Waits for a future match
  • Provides liquidity to other traders

Taker = Executes immediately β†’ 0.01%

  • Your order executes in the same transaction it's submitted
  • Fills as much as possible against existing orders
  • Any unfilled portion automatically becomes a maker order on the book

Key insight: Buy/sell direction doesn't matter. What matters is whether your order enters storage or executes immediately.

Fee Examples & Calculations ​

Understanding fees is best learned through real examples. Each scenario below shows the complete picture: market conditions, fee allocation between parties, and exact calculations.

Example 1: Market Order (Always Taker) ​

Scenario: You want to buy $1,000 worth of BTC immediately

Market conditions:

  • Best ask: $50,000 per BTC
  • Existing limit sell orders in the book at $50,000

Fee allocation:

  • You (market buy): Taker β†’ 0.01% fee
  • Existing sellers (limit orders in storage): Maker β†’ 0.00% fee

Your calculation:

Order value: $1,000
Your fee (Taker): 0.01% = $1,000 Γ— 0.0001 = $0.10

Total you pay: $1,000 + $0.10 = $1,000.10
BTC you receive: $999.90 Γ· $50,000 = 0.019998 BTC
Effective price: $50,005 per BTC

Key insight: Market orders execute immediately in the same transaction, so they're always takers. The sellers who had orders waiting in storage are makers and pay no fees.

Example 2: Limit Order That Rests (Maker) ​

Scenario: You want to buy 0.02 BTC but only at $49,500 or better

Market conditions:

  • Current best ask: $50,000
  • Your limit: $49,500 (below market, won't execute immediately)
  • Your order enters on-chain storage

Fee allocation:

  • You (limit order in storage): Maker β†’ 0.00% fee
  • Future seller who matches your order: Taker β†’ 0.01% fee

When order eventually executes (someone sells to you at $49,500):

BTC quantity: 0.02 BTC
Execution price: $49,500
Gross value: 0.02 Γ— $49,500 = $990.00

Your fee (Maker): 0.00% = $0.00
Seller's fee (Taker): 0.01% = $0.99

Total cost to you: $990.00 + $0.00 = $990.00
Total seller receives: $990.00 - $0.99 = $989.01

Key insight: Your order became a maker because it rested in the order book storage waiting for a match. You saved $0.99 compared to using a market order! If you had placed a limit order at $50,000 or higher, it would have executed immediately as a taker.

Example 3: Two Limit Orders Match (Including Aggressive Limits) ​

Scenario: Trader A has a buy limit order waiting, Trader B submits a sell limit order that crosses the spread

Market conditions:

  • Trader A placed a buy limit order at $50,000 yesterday (in storage)
  • Trader B places a sell limit order at $50,000 or lower today
  • Trade amount: 0.5 BTC

Fee allocation:

  • Trader A (first limit, in storage): Maker β†’ 0.00% fee
  • Trader B (second limit, crosses spread): Taker β†’ 0.01% fee

Trader A's outcome (Buyer, Maker):

BTC purchased: 0.5 BTC
Price: $50,000 per BTC
Gross value: $25,000

Fee (Maker): $0.00
Total paid: $25,000.00

Trader B's outcome (Seller, Taker):

BTC sold: 0.5 BTC
Price: $50,000 per BTC
Gross value: $25,000

Fee (Taker): $25,000 Γ— 0.0001 = $2.50
Net received: $24,997.50

Key insight: Both used limit orders, but Trader B's order crossed the spread and executed immediately, making them the taker. First to storage wins maker statusβ€”even aggressive limit orders are takers if they execute immediately.

Example 4: Large Order with Partial Fills ​

Scenario: Sell 1 BTC with market order, executes in multiple parts

Order book state:

Bids (Buyers):
$49,900 - 0.3 BTC
$49,850 - 0.4 BTC  
$49,800 - 0.3 BTC

Execution breakdown:

Fill 1: 0.3 BTC @ $49,900 = $14,970.00
Fill 2: 0.4 BTC @ $49,850 = $19,940.00  
Fill 3: 0.3 BTC @ $49,800 = $14,940.00
Total: 1.0 BTC for $49,850.00 (average price)

Fee calculation:

Total value: $49,850.00
Taker fee (0.01%): $49,850.00 Γ— 0.0001 = $4.985
Net proceeds: $49,850.00 - $4.985 = $49,845.015

Key points:

  • One fee calculation on total value (not per fill)
  • Average execution price: $49,850
  • Total fee: $4.985
  • Net received: $49,845.015

Quick Reference ​

Will I Pay Maker or Taker Fees? ​

Your OrderResultFeeWhy?
Market buy or market sellAlways Taker0.01%Executes immediately, never stored
Limit buy order below askMaker0.00%Waits in storage for match
Limit sell order above bidMaker0.00%Waits in storage for match
Limit buy order at or above askTaker0.01%Crosses spread, executes immediately
Limit sell order at or below bidTaker0.01%Crosses spread, executes immediately

Key Takeaways ​

  1. First to storage wins maker status - Doesn't matter if you're buying or selling
  2. Crossing the spread = taker - Even with limit orders
  3. One fee per order - Not per partial fill

Fee Comparison ​

o2 vs Other Exchanges ​

ExchangeMaker FeeTaker FeeGas Fees
o2 Exchange0.00%0.01%Sponsored
Uniswap V30.01-1.00%0.01-1.00%User pays
Hyperliquid0.00-0.01%0.025-0.035%User pays