> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Perp Fees

> Fee structures for each perp DEX integrated on Mobula — Lighter and Gains Network — with numerical examples.

## Overview

Mobula routes perp orders to two DEXes today: **Lighter** and **Gains Network**. Each one has its own fee model — values below are taken directly from the protocols' public fee documentation.

<CardGroup cols={2}>
  <Card title="Lighter" icon="bolt" href="https://docs.lighter.xyz/trading/trading-fees">
    Orderbook DEX. Free for Standard accounts; staking-tier maker/taker fees for Premium.
  </Card>

  <Card title="Gains Network" icon="chart-line" href="https://docs.gains.trade/gtrade-leveraged-trading/fees-and-spread">
    Leveraged trading. Opening + closing fees on leveraged size, plus spread and borrowing fees.
  </Card>
</CardGroup>

***

## Lighter

Lighter is an on-chain orderbook. Fees depend on **account type** and, for Premium, on the amount of **LIT staked**.

### Standard Account (default)

<Note>
  **0% maker / 0% taker.** All markets, perpetuals and spot. No fee at all.
</Note>

| | Maker | Taker | Taker latency | Maker latency | Cancel latency |
| - | - | - | - | - | - |
| **Standard** | 0% | 0% | 300 ms | 200 ms | 200 ms |

### Premium Account (opt-in)

Premium unlocks lower latency and better cancel/post-only behavior, in exchange for a fee. Fees scale down with staked LIT:

| Staked LIT | Maker | Taker | Taker latency |
| - | - | - | - |
| 0 | 0.0040% | 0.0280% | 200 ms |
| 1,000 | 0.0039% | 0.0273% | 195 ms |
| 3,000 | 0.0038% | 0.0266% | 190 ms |
| 10,000 | 0.0036% | 0.0252% | 180 ms |
| 30,000 | 0.0034% | 0.0238% | 170 ms |
| 100,000 | 0.0032% | 0.0224% | 160 ms |
| 300,000 | 0.0030% | 0.0210% | 150 ms |
| 500,000 | 0.0028% | 0.0196% | 140 ms |

Staking discount is applied at the **L1 address level** — main account and sub-accounts share the same tier based on combined stake.

### Example — Lighter Premium, 0 staked LIT

Open a \$10,000 notional position as a market taker:

```
Notional      = $10,000
Taker fee     = 0.028%
Fee paid      = $10,000 × 0.00028 = $2.80
```

Same trade as a maker (resting limit order):

```
Notional      = $10,000
Maker fee     = 0.004%
Fee paid      = $10,000 × 0.00004 = $0.40
```

Same trade on a **Standard account**: **\$0**.

<Tip>
  Standard is free, so it's the default for most flow. Premium is opt-in for traders who need lower latency and the [volume quota program](https://apidocs.lighter.xyz/docs/volume-quota-program), and pay the maker/taker fee in exchange.
</Tip>

[Full Lighter fee documentation →](https://docs.lighter.xyz/trading/trading-fees)

***

## Gains Network

Gains charges fees on the **leveraged position size** (collateral × leverage), not on collateral. Four components on every trade:

1. **Opening fee** — taken when the trade opens
2. **Spread** — applied to the price (fixed + dynamic / price impact)
3. **Borrowing fee** — accrued per block while the trade is open
4. **Closing fee** — taken when the trade closes

### Opening + Closing fees by asset class

| Asset class | Opening | Closing |
| - | - | - |
| Crypto (core: BTC, ETH) | 0.05% | 0.05% |
| Crypto (non-core) | 0.06% | 0.06% |
| Forex (major) | 0.012% | 0.012% |
| Forex (minor) | 0.016% | 0.016% |
| Forex (exotic) | 0.02% | 0.02% |
| Commodities Tier 1 (Gold) | 0.05% | 0.05% |
| Commodities Tier 2 (Silver, Oil, Pd, Pt) | 0.08% | 0.08% |
| Stocks | 0.07% | 0.07% |
| Indices | 0.05% | 0.05% |

### Spread

* **BTC, ETH:** 0% fixed spread (only dynamic spread applies)
* **Other crypto:** dynamic spread only, function of open interest and 1% market depth
* **Forex / Commodities:** fixed spread per pair (0.01% major, 0.04% tier 2 commodities, etc.)

Dynamic spread formula:

```
dynamic_spread (%) = (OI_side + new_position_size / 2) / depth_1pct
```

### Borrowing fee

Charged per block on total position size, scales with how lopsided the pair's open interest is:

```
feePerBlock = baseFeePerBlock × (effectiveOi / maxOi) ^ exponent
```

Pairs with very long-skewed (or short-skewed) OI charge more on the dominant side. Balanced books charge less.

### Example — Long ETH/USD on Gains

Setup:

```
Collateral    = 250 USDC
Leverage      = 10x
Position size = 2,500 USDC
Asset         = ETH (core crypto, 0.05% open / 0.05% close)
Entry price   = 3,003.19 (assume 0% fixed spread for ETH)
```

**Opening fee:**

```
2,500 × 0.05% = 1.25 USDC
Net collateral after fee = 248.75 USDC
Net position size        = 2,487.50 USDC
```

**Dynamic spread** (assuming 100k long OI and 8M depth):

```
dyn_spread = (100,000 + 2,487.50 / 2) / 8,000,000 = 0.0126%
opening price = 3,003.19 × (1 + 0.000126) ≈ 3,003.57
```

**Trade goes up 1%, close at 3,033.6:**

```
PnL gross   = 2,487.50 × 1% = 24.88 USDC
Closing fee = 2,487.50 × 0.05% = 1.24 USDC
Borrowing   = ~0.5 USDC (depends on duration / OI imbalance)

PnL net     = 24.88 - 1.24 - 0.5 = 23.14 USDC
Final out   = 248.75 + 23.14 = 271.89 USDC
```

So on a 250 USDC × 10x trade closed at +1%, the trader pockets **21.89 USDC** out of the \~25 USDC raw move — total fees (open + close + borrowing) ≈ **3 USDC**, or **\~12% of gross PnL** at this size.

<Note>
  Liquidation prices on Gains tighten over time as borrowing fees accrue. See the [Gains liquidation thresholds tables](https://docs.gains.trade/gtrade-leveraged-trading/fees-and-spread#liquidation-thresholds) for exact thresholds per asset class and leverage.
</Note>

[Full Gains Network fee documentation →](https://docs.gains.trade/gtrade-leveraged-trading/fees-and-spread)

***

## Quick comparison

| | Lighter (Standard) | Lighter (Premium, 0 LIT) | Gains (core crypto) |
| - | - | - | - |
| Open fee | 0% | 0.028% taker / 0.004% maker | 0.05% |
| Close fee | 0% | 0.028% taker / 0.004% maker | 0.05% |
| Spread | 0 (orderbook) | 0 (orderbook) | Fixed (per asset class) + dynamic |
| Borrowing | n/a | n/a | per-block, OI-skew-based |

<Tip>
  Use [`/2/perp/quote`](/exec/perps/perp-quote) to preview fees and slippage on either DEX before committing the trade — it returns a fee breakdown for the venue your order would route to. Pair it with the [Perp DEX Status](/data/perps/perp-dex-status) endpoint to confirm the upstream is healthy before routing.
</Tip>

***

## Related

<CardGroup cols={2}>
  <Card title="Perpetuals APIs Overview" icon="chart-mixed" href="/perps-introduction">Supported exchanges and capability map.</Card>
  <Card title="Get Perp Quote" icon="calculator" href="/exec/perps/perp-quote">Preview fills, fees and venue routing.</Card>
  <Card title="DEX Status" icon="heart-pulse" href="/data/perps/perp-dex-status">Lighter / Gains uptime, probe results and maintenance windows.</Card>
  <Card title="Perp Execution Flow" icon="bolt" href="/cookbooks/perp-execution-flow">Build → execute flow against Lighter and Gains.</Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.