Skip to main content
A trading fee is charged per fill, on the notional value of that fill. Not per order, not per block — an order that fills in five pieces is charged five times, on five notionals, and an order that never fills is never charged. Two rates apply, depending on which side of the trade you were on. Maker — your order was resting on the book and someone else traded into it. You supplied liquidity, and the rate is lower. Taker — your order crossed the spread and consumed resting liquidity. The rate is higher. The distinction is about what your order did, not what you intended. A limit order that crosses on placement pays the taker rate. If you must be a maker, use post-only, which is rejected rather than filled when it would take liquidity. See Order types.

The calculation

fee=fill notional×rate in ppm1,000,000\text{fee} = \text{fill notional} \times \frac{\text{rate in ppm}}{1{,}000{,}000} Rates are stored on-chain in parts per million, not percent. The network default is 450 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 negotiated account rate is set directly against an account. It survives the nightly tier pass: an account carrying a negotiated rate is deliberately skipped, so a volume recalculation never overwrites terms someone agreed to. A volume tier rate is what almost every account has. It is derived from rolling volume and written back on-chain daily. See Fee tiers. The network default applies to an account that has never been assigned anything — a new account trades at tier 0 rather than at no rate at all.
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.
A per-market base rate also exists in the on-chain configuration surface, for the case where a market’s risk profile differs enough from the venue’s that pricing it on the venue-wide schedule is wrong — a pre-market contract, an unusually thin listing. When it is applied, it replaces the network default as the base for that market, with account rates still layering on top of it.
Per-market base rates are configurable but are not applied on the fill path today. Every market currently resolves against the account-then-default chain above. This page will say otherwise when that changes.

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.
Balances and movements are chain state. The reconciliation — opening balance, fees in, transfers out, closing balance — is a sum anyone can recompute from committed blocks rather than a figure anyone has to publish. Bridge and account fees are collected separately, into their own account. See Non-trading fees.

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.
Read rates from the chain rather than hard-coding them. The schedule is on-chain configuration and moves; an integration carrying its own copy will eventually compute a cost the network is not charging. See Developers.

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.