# Fees

Perpl uses a maker-taker model. Maker fees are paid when adding liquidity to the order book, while taker fees are paid when removing liquidity from it. The user only pays fees to open a trade, not to close it. Hence, there's no rakeback on the profits. See the fee structure below.

<table><thead><tr><th>Tier</th><th>14‑day Volume Threshold</th><th data-type="number">Maker (bps)</th><th data-type="number">Taker (bps)</th></tr></thead><tbody><tr><td>T1</td><td>&#x3C; $5M</td><td>1.9</td><td>5</td></tr><tr><td>T2</td><td>≥ $5M</td><td>1.2</td><td>4.2</td></tr><tr><td>T3</td><td>≥ $25M</td><td>0.8</td><td>3.5</td></tr><tr><td>T4</td><td>≥ $100M</td><td>0.5</td><td>3.3</td></tr><tr><td>T5</td><td>≥ $250M</td><td>0.2</td><td>2.6</td></tr><tr><td>VIP1</td><td>≥ $1B</td><td>0</td><td>2.5</td></tr><tr><td>VIP2</td><td>≥ $2.5B</td><td>0</td><td>2</td></tr></tbody></table>

At launch, all trades routed through the SDK and manual front-end traders are charged at Tier 1. At the end of the week, users will be rebated according to their volume fee tier. Trades routed through the frontend forwarder are automatically charged the appropriate fees.

{% hint style="info" %}
**On-chain vs off-chain fees**: The smart contract stores a single flat trading fee per perpetual (maximum 10%). The 7-tier maker-taker fee model with volume-based rebates (Tier 1 through VIP2) is applied off-chain — rebates are calculated based on weekly trading volume and distributed separately. The on-chain fee represents the base rate before any tier adjustments.
{% endhint %}

### Fee Types

| Fee               | Description                                                                                                                                                                       |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Trading fee**   | Charged per trade on the notional value. Configurable per perpetual, maximum 10%.                                                                                                 |
| **Recycle fee**   | Applied to orders with an expiry block. Refunded if the order is filled or self-canceled. Paid to whoever clears an expired order as an incentive. Currently set to 0 on mainnet. |
| **Insurance fee** | A portion of liquidation proceeds directed to the per-perpetual insurance fund (`liqInsAmtPer100K`).                                                                              |
| **Protocol fee**  | The remainder of liquidation proceeds after user and insurance shares.                                                                                                            |
