← Guides

Maker vs taker fees: how to actually get maker fills

Updated September 2026 · ~6 min read

Every guide tells you that a maker adds liquidity and a taker removes it. Almost none tell you that a limit order can be charged the taker rate, that there is exactly one flag on each exchange that makes a maker fill certain, or what that flag is worth over a month. On Bybit perpetuals the gap between an all-maker and an all-taker month is the difference between 0.0200% and 0.0550% on every dollar you trade — and on Bybit spot at the base tier it is worth nothing at all.

This guide is the mechanics, the arithmetic, and the part that costs you. Every rate and every order-type rule below comes from the exchange's own fee page, help centre or API docs, checked on 21 September 2026.

Bybit · OKX · Bitget referral codeREBATLYUse it on a new account at signup — exchanges cannot attach a code afterwards.

Guides

$10M+ rebates paid · Paid daily in USDT · No password or API keys, ever

Already signed up? Message @rebatly and we'll confirm you're linked.

Maker or taker is decided by what your order does, not what you call it

The single most expensive misunderstanding in trading fees is the belief that "limit order" means "maker fee". It does not. All three exchanges define the roles by behaviour at the moment of placement: if your order rests on the book unfilled, you are the maker; if it matches something already sitting there, you are the taker.

OKX states it plainly on its fee page: a maker order "enters the order book and isn't filled immediately", while a taker order "is immediately filled against an existing order on the order book". Bitget uses almost identical language. The consequence is the bit nobody spells out: a limit order priced through the spread is a taker order and is charged the taker rate. If you place a buy limit at 100,000 while the best ask is 99,990, you do not get a patient resting order at 100,000 — you get an instant fill sweeping up from 99,990, at taker prices.

Bybit's own help centre puts this in a table. Under "Order Placement Types" it lists maker orders as "Limit Orders only", and taker orders as "Can be either Market or Limit Orders". A market order can never be a maker. A limit order can be either. That asymmetry is the whole problem.

RoleWhat the order doesWhich order types can produce it
MakerRests on the book, adds liquidity, waits to be hitLimit orders only
TakerMatches an existing order, removes liquidityMarket orders, and limit orders that cross the spread

The base rates, and the surprise hiding in spot

Here is what the three exchanges actually charge a brand-new account with no volume history, read from their public fee pages on 21 September 2026. Bybit's base tier is "Non-VIP", OKX's is "Regular user" (under $100,000 in assets or under $1,000,000 30-day spot volume), and Bitget's is the bottom row of its VIP table.

Look at the spot column twice. On Bybit and on Bitget, the base-tier spot maker fee and taker fee are identical — 0.1000% either way. At the base tier, a post-only spot order on those two exchanges saves you exactly zero in fees. It may still be worth using for execution reasons, but not for the fee. Only OKX gives base-tier spot traders a real maker discount, 0.0800% against 0.1000%, and even that is a 20% saving rather than the dramatic one people expect.

Perpetuals are where the maker discount actually lives. All three charge 0.02% to make. The taker side ranges from 0.0500% on OKX to 0.0600% on Bitget — so the taker order costs between 2.5x and 3x the maker order on the same notional. If you want to see how these rates compound across a strategy, the Bybit fee calculator and the wider guide to reducing crypto trading fees cover the rest of the stack.

Exchange and base tierSpot maker / takerUSDT perpetual maker / taker
Bybit — Non-VIP0.1000% / 0.1000%0.0200% / 0.0550%
OKX — Regular user0.0800% / 0.1000%0.0200% / 0.0500%
Bitget — base VIP tier0.1% / 0.1%0.02% / 0.06%

Post-only: the one flag that makes a maker fill certain

Every exchange has a mechanism that refuses to let your order take liquidity. It is the only thing that guarantees the maker rate, and it works the same way everywhere: if the order would match on arrival, the exchange kills it rather than filling it as a taker.

The important detail, and the one that trips up people writing bots: all three cancel the order rather than rejecting it and holding it. There is no "try again at a better price" behaviour. The order is gone and you have to submit a new one. OKX's API docs are explicit — post_only is an order type "which the order can only provide liquidity to the market and be a maker", and "if the order would have executed on placement, it will be canceled instead". Bybit's API says the same for timeInForce PostOnly: if it would be filled immediately on submission, it is cancelled. Bitget's support centre: if the limit price is likely to result in an immediate match, "the system will automatically cancel the order".

Note the structural difference in how each exchange models it, which matters if you are writing code. On Bybit, post-only is a time-in-force value (timeInForce: PostOnly) sitting alongside GTC, IOC and FOK, and in the UI it is an extra option on a Limit or Conditional Limit order. On OKX, post-only is an order type (ordType: post_only), sitting alongside limit, market, fok and ioc — you do not send ordType: limit plus a flag. On Bitget it is a force value (force: post_only) attached to orderType: limit, alongside gtc, ioc and fok, with gtc as the default.

One OKX rule worth knowing if you trade new listings: an instrument can itself be in a post_only state, in which "only post-only orders are accepted" and market, IOC, FOK and normal limit orders "are rejected". During those windows, maker-only is not a choice you make, it is the only way in.

ExchangeWhere it lives in the UIAPI parameterIf the order would cross
BybitPost-Only option on a Limit or Conditional Limit order, in Spot and DerivativestimeInForce: PostOnlyCancelled on placement
OKXPost Only, one of three advanced limit options with FOK and IOCordType: post_onlyCancelled on placement
BitgetPost-only on a limit orderforce: post_only (orderType: limit)Cancelled on placement

What a maker fill is actually worth

Abstract percentages do not change behaviour. Money does. Below is the round trip — open and close — on $10,000 of notional per side on USDT perpetuals at each exchange's base tier, ignoring price movement so you can see the fee alone.

Read the middle column carefully, because it is the realistic one. Most traders make their entry patiently and then close in a hurry, which means one maker leg and one taker leg. On Bybit that half-measure costs $7.50 per $10,000 round trip against $4.00 for a disciplined maker-only round trip — so the exit alone throws away most of the saving.

Scaled to a month: on $1,000,000 of filled notional, an all-maker month costs $200 in fees on all three exchanges, because all three charge 0.02% to make. An all-taker month costs $550 on Bybit, $500 on OKX and $600 on Bitget. The gap is $350, $300 and $400 respectively — for identical trades, at identical sizes, differing only in how the order was submitted.

There is a second way to read the same numbers, which matters more if you trade small and often. A Bybit perp round trip costs 0.110% of notional taker-only and 0.040% maker-only. That is the move the market has to make before you are back to flat — and it is why the maker question dominates high-frequency strategies. The scalping break-even guide works through where that line sits, and grid bot fees covers the case where hundreds of small fills make the maker/taker split the entire edge.

USDT perpetual, $10,000 per sideMaker in, maker outMaker in, taker outTaker in, taker out
Bybit (0.0200% / 0.0550%)$4.00$7.50$11.00
OKX (0.0200% / 0.0500%)$4.00$7.00$10.00
Bitget (0.02% / 0.06%)$4.00$8.00$12.00

Where the maker fee goes to zero — or below it

At the top of every fee table, the maker fee stops being a fee. This is not reachable on a retail account and you should not plan around it, but it explains why the exchanges structure the discount the way they do, and it is the clearest possible statement of how much they value resting liquidity.

OKX publishes negative maker rates openly for VIP 7 through VIP 9 on both spot and futures, and even documents the arithmetic: "VIP 7-9 users may enjoy negative trading fees, which means you earn a rebate when carrying out trades." Bybit's Supreme VIP tier pays 0.0000% maker on perpetuals and futures, and its market-maker tiers on the PRO schedule go to -0.0060% maker with a 0.0000% taker fee. Bitget's top VIP row is 0% maker on both spot and USDT-M futures.

The thresholds are enormous — OKX's futures VIP 6 needs $1,000,000,000 in 30-day volume or $50,000,000 in assets — and Bybit's market-maker rates are a separate, negotiated programme, not a volume ladder you climb by trading. Treat this table as context, not a target. The realistic version of "lower fees without more volume" is covered in Bybit VIP vs PRO fees.

Exchange and tierMakerTaker
OKX futures — VIP 60.0000%0.0250%
OKX futures — VIP 9-0.0050%0.0150%
OKX spot — VIP 60.0000%0.0300%
Bybit perps & futures — Supreme VIP0.0000%0.0300%
Bybit perps & futures — MM3 (market maker)-0.0060%0.0000%
Bitget USDT-M futures — top VIP0%0.02%
Bitget spot — top VIP0%0.03%

How a fee rebate changes the arithmetic (and what it does not change)

A rebate is a share of the trading fees you actually paid, returned to you. That has a counterintuitive consequence people get wrong in both directions: because the rebate is a percentage of fees paid, trading as a taker generates a bigger rebate in absolute terms. A trader who pays more gets more back. It does not follow that taking is cheaper.

Work it through on Bybit with the $1,000,000 month from above, at the entry rebate tier that applies under $50M of monthly volume. The all-taker month pays $550 in fees and gets $220 back, netting $330. The all-maker month pays $200 and gets $80 back, netting $120. The rebate narrows the gap from $350 to $210 — it cushions the taker, but it never reverses the ranking. Maker-only still costs roughly a third of taker-only after the rebate is applied.

The practical reading: a rebate and maker discipline are additive, not alternatives. Use both. And note what a rebate is calculated on — trading fees only. Funding payments on perpetuals are never rebated, because they are paid between traders rather than to the exchange; funding rate vs trading fees explains why that distinction matters for anyone holding positions overnight. To see what you are actually paying before you optimise it, check the fees you have paid on Bybit, OKX and Bitget.

Bybit perps, $1,000,000 filled notionalFees paidRebate at the entry tier (40%)Net cost
All maker$200$80$120
All taker$550$220$330
Difference$350$140$210

Getting the fill — and the honest cost of insisting on it

The mechanics are simple and unglamorous. Price your order on the passive side of the spread. To buy as a maker, your limit must be at or below the best bid; to sell, at or above the best ask. Joining the best bid usually works. Pricing one tick through it does not — that is a taker order wearing a limit order's clothes, and without post-only the exchange will happily fill it at the taker rate.

Then add post-only anyway. Between the moment you read the book and the moment your order arrives at the matching engine, the market moves. Bybit's own example is exactly this: a trader places a buy at 9,000 when the best ask is 9,001, the ask slides to 8,995 in transit, and without post-only the order executes immediately as a taker. Post-only is not a substitute for pricing correctly — it is insurance against the gap between your screen and the engine.

Now the part that maker-fee guides skip. Post-only has a real cost, and it is not measured in basis points.

First, missed entries. A cancelled post-only order is not a filled order. If the setup you wanted runs without you, the fee you saved is irrelevant — you are flat and the trade is gone. On a $10,000 Bybit round trip you are protecting $7.00. That is a poor trade against missing a move you had actually identified.

Second, queue position and adverse selection. A resting bid gets filled when someone is willing to sell into it. Statistically, that happens more often when the market is about to move against you than when it is about to move your way. The maker fee is lower precisely because the maker is carrying that risk; you are being paid a discount to take the worse side of the information. Sitting at the back of a long queue at a popular price level makes this worse, because the only fills you get are the ones where the level breaks.

Third, the re-posting treadmill. Because all three exchanges cancel rather than hold, a trending market will cancel your post-only order repeatedly. Chasing it up tick by tick can leave you filled at a worse price than a single taker order would have cost, with the fee saving more than wiped out by slippage.

Where post-only is clearly right: entries you are patient about, scaling out of a position, market-making-style strategies, grid and DCA bots where fills are numerous and no single one is urgent, and any strategy whose edge per trade is close to the round-trip fee. Where a taker order is simply correct: stopping out, closing into a move that is running, and anything where being flat matters more than 0.035% of notional. Paying the taker fee to exit a bad position is not a mistake; refusing to is.

SituationBetter choiceWhy
Patient entry at a level you have markedPost-only limitMissing it costs nothing you had
Stopping out or closing a losing positionMarket or crossing limitCertainty is worth more than 0.035%
Grid, DCA or scaled ordersPost-only limitMany fills, none individually urgent
Chasing a fast trending moveMarket order, or stand downRe-posting slippage exceeds the fee saved
Spot on Bybit or Bitget at base tierEither, for fee reasonsMaker and taker are both 0.1000%

Pay less to make, and keep a share of what you still pay

Maker discipline reduces the fee. A rebate returns a share of whatever fee is left. Rebatly is a registered affiliate of Bybit, OKX and Bitget, and shares its commission with referred traders as fee rebates — up to 50% on Bybit and up to 40% on OKX and Bitget. Sign up with the code REBATLY on a new account; exchanges cannot attach a referral code to an account after it exists, so this is a one-time decision at registration.

Tiers are set by your monthly trading volume. On Bybit that is 40% under $50M, 45% from $50M and 50% from $150M; on OKX and Bitget it is 30%, 35% and 40% at the same thresholds. Rebates are calculated daily on the trading fees you actually paid and sent the next day in USDT by internal transfer into your own exchange account, usually between 04:00 and 12:00 UTC. The minimum payout is 1 USDT, and smaller days carry over until the balance clears it.

Rebatly only ever sees your public exchange UID. No API keys, no passwords, no custody, no deposits. You check what you have earned in the Telegram bot at t.me/rebatlybot. Questions go to t.me/rebatly or hello@rebatly.io. Rebatly launched in 2026. More on cutting the fee itself in the full guide library.

Rebatly is an independent affiliate funded from its commission; not financial advice.

FactDetail
Signup codeREBATLY — on a new account only
Rebate shareUp to 50% on Bybit; up to 40% on OKX and Bitget
Tier basisMonthly trading volume: $50M and $150M thresholds
CalculationDaily, on trading fees actually paid
PayoutNext day, USDT, internal transfer, usually 04:00–12:00 UTC
Minimum1 USDT; smaller days carry over
What Rebatly seesYour public exchange UID only

Guides

$10M+ rebates paid · Paid daily in USDT · No password or API keys, ever

Already signed up? Message @rebatly and we'll confirm you're linked.

September 21, 2026 — published. Base maker/taker rates for spot and USDT perpetuals read directly from the Bybit, OKX and Bitget fee pages on 21 September 2026, including Bybit's VIP and PRO/market-maker schedules and the zero and negative maker tiers on all three. Post-only behaviour verified against each exchange's own API documentation (Bybit timeInForce PostOnly, OKX ordType post_only, Bitget force post_only) and help centres, including Bybit's Post-Only Order article (last updated 17 June 2026) and its maker vs taker comparison (last updated 13 September 2026).


FAQ

Does a post-only order guarantee I pay the maker fee?

Yes, with one condition: it guarantees you will never pay the taker fee, because the order is cancelled rather than filled if it would match on arrival. If it fills, it filled from the book, so it is a maker fill at the maker rate. What it cannot guarantee is that you get filled at all. Bybit, OKX and Bitget all cancel rather than reject-and-hold, so a cancelled post-only order has to be re-submitted.

Is a limit order always a maker order?

No, and this is the most common and most expensive misconception about trading fees. A limit order priced through the spread matches immediately against resting orders and is charged the taker rate. Bybit's own help centre lists taker orders as "Can be either Market or Limit Orders", against maker orders being "Limit Orders only". Only the resting behaviour decides it — the order type name does not.

Is post-only worth using on spot?

For fee reasons, it depends entirely on the exchange. At the base tier Bybit charges 0.1000% maker and 0.1000% taker on spot, and Bitget charges 0.1% either way — so post-only saves nothing on fees there. OKX does give a base-tier spot maker discount, 0.0800% against 0.1000%. On USDT perpetuals all three give a genuine maker discount, with taker costing between 2.5x and 3x the maker rate.

Can the maker fee ever be zero or negative?

Yes, at the top of the tables. OKX pays negative maker rates at VIP 7 to VIP 9 on both spot and futures, down to -0.0050%, and reaches 0.0000% maker at VIP 6. Bybit's Supreme VIP tier is 0.0000% maker on perpetuals and futures, and its market-maker tiers reach -0.0060%. Bitget's top VIP row is 0% maker on spot and USDT-M futures. The volume thresholds run into the hundreds of millions to billions, so these are not retail-reachable.

If a rebate gives me back a share of fees, should I just trade as a taker to earn a bigger rebate?

No. The rebate is a share of fees paid, so a taker month does generate a larger rebate in absolute terms — but you paid much more to get it. On Bybit at $1,000,000 of monthly filled notional, an all-taker month costs $550 and returns $220, netting $330; an all-maker month costs $200 and returns $80, netting $120. The rebate narrows the gap but never reverses it. Maker discipline and a rebate work together, not as substitutes.