Fee Model
PartyDEX charges fees on trades that route through the order book and through AMM liquidity pools. This page covers exactly what you pay, when, and how.
This doc uses basis points (bps) for readability: 1 bps = 0.01%. The on-chain API uses pips (1 pip = 0.0001%): 1 bps = 100 pips. For example, a 7 bps taker fee is stored as taker_fee_pips: 700.
Fee Schedule
All trading fees are per-market configurable. The table below shows typical values — check the market info query for live rates.
| Venue | Fee Type | Typical Range | Paid In | Who Pays |
|---|---|---|---|---|
| Order Book | Taker fee | 2–7 bps | Input token | Taker (aggressor) |
| Order Book | Maker fee | 0–4 bps (or rebate) | Output token | Maker (resting order) |
| Pool | Swap fee | 1–100 bps (pool's fee tier) | Input token | Swapper |
| Any | Operation fee | Token ledger fee | Deposited token | User |
Examples by market type:
| Market | Taker | Maker | Rationale |
|---|---|---|---|
| Stablecoin (e.g., USDT/USDC) | 2 bps | -1 bp (rebate) | Tight spreads attract volume; rebate incentivizes resting liquidity |
| Major (e.g., BTC/USDT, ICP/USDT) | 5 bps | 2 bps | Competitive rates for liquid pairs |
| Standard (e.g., PARTY/USDT) | 7 bps | 4 bps | Default tier |
Order Book Fees
Taker Fee
When your order matches immediately against resting liquidity, you pay the market's taker fee on your gross input amount. For example, on a market with a 7 bps taker fee, a BUY order spending 1,000 USDT retains ~0.70 USDT and the remaining 999.30 USDT goes toward filling.
Maker Fee
When your resting limit order gets filled by an incoming taker, you pay the market's maker fee on the output you receive. For example, on a market with a 4 bps maker fee, if a taker fills your SELL order for 1,000 USDT, the protocol retains ~0.40 USDT and you receive 999.60 USDT.
Maker Rebates
The protocol supports a maker rebate mode where makers receive a rebate instead of paying a fee. The rebate is funded from the taker fee: the taker still pays their fee, but a portion is redirected to the maker instead of the protocol. Maker rebates and maker fees are mutually exclusive — only one can be active per market.
The rebate can never exceed the taker fee, guaranteeing the protocol never pays out more than it collects. See the examples table above for markets where rebates are active.
Pool (AMM) Fees
Pools use a Uniswap V3-style concentrated liquidity model with configurable fee tiers. Pools are created on demand when the first LP adds liquidity at a given fee tier.
Fee Tiers
Fee tiers range from 1 to 100 bps (0.01% to 1.00%) in 1 bps increments — 100 possible tiers. LPs choose their fee tier when adding liquidity. Common examples:
| Fee Tier | Fee Rate | Tick Spacing | Typical Use |
|---|---|---|---|
| 1 bps | 0.01% | 1 | Stable pairs (e.g., USDT/USDC) |
| 5 bps | 0.05% | 10 | Correlated assets |
| 30 bps | 0.30% | 60 | Most trading pairs |
| 100 bps | 1.00% | 200 | Exotic / volatile pairs |
How Pool Fees Work
When a swap routes through a pool, the fee is deducted from the input amount before the swap executes. The fee is split:
- 90% to LPs — distributed pro-rata to in-range liquidity providers. LPs collect earned fees explicitly.
- 10% to protocol — retained as protocol revenue.
Operation Fees
Certain operations charge a flat operation fee equal to one ledger transfer fee — just enough to prevent spam while remaining negligible for real users. This is generally charged on top of your input amount and goes to protocol revenue. For decrease operations, the fee is handled differently (see below).
Which Operations Charge
| Charged (1 fee) | Free |
|---|---|
| Create orders (1 per batch) | Cancel orders / triggers |
| Create triggers (1 per batch) | Cancel all orders / triggers |
| Update order | Collect fees / close all positions |
| Add / increase liquidity | Deposit / withdraw (ledger fee only) |
| Decrease liquidity (partial only — full withdrawal is free) | Pass-through trade (ledger fees only) |
| Lock / transfer position |
Fee Token Selection
Which token the fee is charged on depends on the operation:
- Batch operations (create orders, create triggers): a single batch can mix buy and sell specs, so the fee is charged on quote if balance covers it, otherwise base.
- Liquidity operations (add, increase, partial decrease, lock, transfer): same quote-preferred, base-fallback rule.
- Update order: charged on the order's input token (buy → quote, sell → base).
Decrease Behavior
- Update order with a lower amount: fee is deducted from the refunded difference rather than charged on top. Fails if refund < fee.
- Partial decrease liquidity: fee is charged from trading balance (quote-preferred), same as other liquidity operations. Full withdrawals skip the fee entirely so users can always close their positions.