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 Type | Maker (0.00% - FREE!) | Taker (0.01%) |
|---|---|---|
| What happens | Order stored in contract, waits for match | Order executes in same transaction |
| Liquidity | Adds liquidity to order book | Removes liquidity from order book |
| Examples | Limit order below/above spread | Market 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 BTCKey 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.01Key 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.00Trader 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.50Key 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 BTCExecution 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.015Key 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 Order | Result | Fee | Why? |
|---|---|---|---|
| Market buy or market sell | Always Taker | 0.01% | Executes immediately, never stored |
| Limit buy order below ask | Maker | 0.00% | Waits in storage for match |
| Limit sell order above bid | Maker | 0.00% | Waits in storage for match |
| Limit buy order at or above ask | Taker | 0.01% | Crosses spread, executes immediately |
| Limit sell order at or below bid | Taker | 0.01% | Crosses spread, executes immediately |
Key Takeaways β
- First to storage wins maker status - Doesn't matter if you're buying or selling
- Crossing the spread = taker - Even with limit orders
- One fee per order - Not per partial fill
Fee Comparison β
o2 vs Other Exchanges β
| Exchange | Maker Fee | Taker Fee | Gas Fees |
|---|---|---|---|
| o2 Exchange | 0.00% | 0.01% | Sponsored |
| Uniswap V3 | 0.01-1.00% | 0.01-1.00% | User pays |
| Hyperliquid | 0.00-0.01% | 0.025-0.035% | User pays |