The calculation
Rates are stored on-chain in parts per million, not percent. The network default is450 ppm taker and 150 ppm maker — 0.045% and 0.015%.
Working in ppm is not cosmetic. Everything on the settlement path is fixed-point integer arithmetic, because a rounding difference between two validators is a fork rather than a discrepancy. A rate expressed as a percentage of a percentage would have to become a decimal somewhere, and there is no version of that which every machine agrees on.
The rounding is therefore specified rather than incidental:
The 1-quantum floor on charges exists so a very small fill cannot be free. The absence of that floor on rebates is the mirror image: the protocol will round a payment down to nothing rather than mint a unit it did not earn.
Which rate applies to you
Every fill resolves the rate the same way, and the order is fixed.A fill
Does the account carry a rate?
A negotiated account rateset directly against the account, and deliberately skipped by the nightly tier pass — a recalculation never overwrites agreed terms
A volume tier ratederived from rolling volume, written back on-chain daily
The network defaulta new account trades at tier 0, not at no rate at allA rate of zero is a real rate: once set, it is charged literally.
A per-market base rate also exists in the on-chain configuration surface, but it is not applied on the fill path today — every market resolves against the account-then-default chain above.
A rate of zero is a real rate, not a missing one. Once an account carries an explicitly set rate, the protocol charges it literally, including when it is zero. Nothing silently falls back to the default because the number happens to look empty.
What the rate can be
Both rates are bounded on-chain, and the write is rejected rather than clamped if a configuration exceeds them.
The asymmetry is deliberate. A negative maker rate is a designed incentive: the venue pays for liquidity it wants on the book. A negative taker rate would be a mechanism for minting money by trading against yourself, so it is not representable rather than merely discouraged.
The 10% ceiling is a guardrail, not a schedule. Real rates live two orders of magnitude below it; the bound exists to stop an absurd or malicious configuration from reaching execution, not to describe what anyone pays.
Placing orders costs no gas
Submitting, amending, and cancelling orders are native protocol transactions. They do not require a gas balance and do not compete in a fee market. This matters more than it sounds. On a venue where order management costs gas, quoting is expensive and cancelling during volatility is most expensive exactly when it is most necessary — so market makers quote wider to cover it, and everyone pays that spread. Making order management free removes that cost from the spread rather than moving it around. The consequence is that the trading fee is the whole protocol cost of trading. There is no second line item.Why your reserved margin exceeds the initial requirement
When you open a position, the protocol reserves margin for the initial requirement plus an anticipated closing fee — because a position that cannot afford to close is a position the venue has to absorb. That anticipated fee is computed at the network’s default taker rate, locked at the moment the order was placed — not at your rate, and not at whatever the rate becomes later. Both parts of that are conservative on purpose. Using the default taker rate means the reservation never under-provisions for an account whose rate later rises. Locking it at placement means a rate change mid-life cannot retroactively invalidate margin that was already checked and accepted. You are charged your actual rate when the close fills. The reservation is a bound, not a bill.Where fees go
Trading fees are collected into a protocol-controlled account on-chain. What flows out is directed to the ecosystem rather than retained.Every fill
Protocol fee accounton-chain and auditable
Liquidity vaultquotes the book and takes over positions in liquidation; profits accrue to depositors
Insurance fundabsorbs shortfalls before deleveraging reaches other traders
Referral rebateswhen that program is live
Token deployersfor spot listings brought by someone else — spot is not live yet
Balances and movements are chain state — opening balance, fees in, transfers out, closing balance is a sum anyone can recompute from committed blocks.
- The liquidity vault that quotes the book and takes over positions during liquidations. Fee revenue is part of its income, and vault profits accrue to depositors.
- The insurance fund, which absorbs shortfalls a liquidation could not cover before deleveraging reaches other traders.
- Referral rebates, when that program is live.
- Token deployers, for listings brought by someone else. This applies to spot listings, which are not live yet.
What is not a trading fee
Funding is the one most often mistaken for a fee. It is a transfer between longs and shorts; depending on which side you hold, it is a cost or an income.
Reducing what you pay
- Be a maker. For most accounts the maker–taker gap is wider than the gap between adjacent volume tiers. Changing how you trade moves your cost more than trading more does.
- Use post-only when you must not pay taker rates by accident. It is rejected rather than filled if it would cross.
- Keep activity under one parent account. Sub-accounts aggregate for tier purposes, so splitting gains nothing and costs operational complexity.
- Split large orders. TWAP and scale orders reduce slippage, which on a large order usually exceeds the fee by a wide margin.
Where to go next
Fee tiers
The schedule, how your tier is computed, and market maker rebates.
Non-trading fees
Bridge, account, vault, and liquidation costs.
Order types
Post-only, and guaranteeing maker status.
Funding
The cost that goes to other traders rather than the protocol.