Same BTC Perp, Four Self-Reported Fee Schedules: Taker Fees 3.75x Apart — and One Venue Pays Its Makers
Disclosure: This article was drafted with AI assistance from public exchange API data and reviewed before publishing. #ad — affiliate disclosure: this article contains no affiliate or referral links. Nothing below is investment or trading advice (not financial advice). All numbers are point-in-time snapshots from exchange-published endpoints; rules change without notice, so re-check the official sources named at the end.
The fee page you read is not the fee field the machine reads
Most traders learn exchange fees from a marketing-friendly fee page: a table of tiers, a footnote about VIP levels, maybe a promotional banner. Those pages are rendered with JavaScript, behind logins, and restructured every few months — which is why so many "exchange fee comparison" posts on the internet quietly copy each other.
But four exchanges publish something rarer: a base fee-rate field for perpetual contracts on a public, no-key API endpoint. The exchange itself reports the number, in a machine-readable field, and you can query it yourself in one request. We did exactly that on 2026-10-09 (02:10–02:14 UTC, two independent rounds, values identical between rounds), for the BTC/USDT perpetual at each venue. Four venues, four answers — and one of them is a negative maker fee.
The four readings
| Venue | BTC perp symbol | Maker (base) | Taker (base) | Field names |
|---|---|---|---|---|
| Gate | BTC_USDT | -0.01% | 0.075% |
maker_fee_rate / taker_fee_rate
|
| KuCoin | XBTUSDTM | 0.02% | 0.06% |
makerFeeRate / takerFeeRate
|
| MEXC | BTC_USDT | 0% | 0.02% |
makerFeeRate / takerFeeRate
|
| Bitget | BTCUSDT | 0.02% | 0.06% |
makerFeeRate / takerFeeRate
|
Read the taker column first. On the same underlying asset, with the same USDT margin mode, a one-way taker print costs 0.02% at MEXC, 0.06% at KuCoin and Bitget, and 0.075% at Gate — a 3.75x spread between cheapest and dearest base reading. A round trip (open and close as a taker) is 4 basis points at one venue and 15 at another. That gap is the same order of magnitude as the entire maker/taker discount structure on many venues: before you optimize which side of the book you sit on, the venue choice already moved your cost by more.
A negative maker fee is not a typo
Gate's maker_fee_rate for BTC_USDT reads -0.0001. Gate's own published SDK documentation defines the field with the sentence "Maker fee rate, negative values indicate rebates" — so the minus sign is intentional: resting orders that get filled earn 0.01% instead of paying it. Across the venue's full contract set (1,028 symbols in our pull), every single contract reports the same -0.0001 maker / 0.00075 taker pair, and both of our fetch rounds agree, so this is a systematic base schedule, not a stale field on one symbol.
That gives us three distinct pricing philosophies on the maker side of the same product:
- Pay makers (Gate, -0.01%): liquidity provision is subsidized.
- Free for makers (MEXC, exactly 0%): resting costs nothing but earns nothing.
- Charge makers (KuCoin and Bitget, +0.02%): passive orders still pay, just less.
"Free maker" and "negative maker" sound identical in a headline and are completely different line items in a PnL statement.
Second underlying, same shape
To confirm we were not reading a one-off symbol configuration, we repeated the pull for the ETH perpetual at all four venues: Gate ETH_USDT reports -0.0001 / 0.00075, KuCoin ETHUSDTM 0.0002 / 0.0006, MEXC ETH_USDT 0 / 0.0002, Bitget ETHUSDT 0.0002 / 0.0006. Same four-way pattern, same ordering on the taker side. The schedule differences are venue-wide policies, not per-coin quirks.
(One honest footnote from our own archive: when this pool first cross-checked MEXC's ETH reading back on 2026-09-08, the taker field showed 0.01%; today it reads 0.02%. Fee fields are live data — that is precisely why they should be re-queried, never quoted from memory.)
What these fields do not claim
Fairness requires four limits, and we will not paper over them:
-
Base tier only. Every venue layers VIP tiers, fee-card levels, and occasional campaigns on top. The numbers above are what the venues themselves label as the standing rate. MEXC even ships a
feeRateTypeflag that distinguishesBASEfromTEMP(promotional) rates, and BTC/ETH both readBASE— a rare, explicit admission of the base-versus-promo distinction. - Self-reported, not audited. These are the exchanges' own fields. We report what they publish, not what your invoice will say.
- Two venues do not play. Kraken, Coinbase, OKX, Bybit and Binance either gate their perp fee fields behind authentication or never expose them publicly, so they cannot appear in this comparison at all. Absence here is an API-transparency fact, not a verdict.
-
Not a ranking. The cheapest base taker rate on paper may come bundled with other trade-offs (spread, depth, funding rules, region availability). Two venues happened to print identical numbers (KuCoin and Bitget, 0.02/0.06) while differing elsewhere — for instance, KuCoin's own contract data shows
maxLeverage125 consistent withinitialMargin0.008 (1 ÷ 0.008 = 125), a self-consistency check of its published fields.
Why this matters for a fee-atlas mindset
Every cost you can see on a fee page has usually already been reformatted for persuasion. The API fields are the exchange talking to machines: terse, unsigned where the marketing copy would never put a minus sign, and identical whether or not anyone is reading. When four venues say 0.02%, 0.06%, 0.06% and 0.075% about the same BTC perpetual, the fee page stops being a detail and starts being the product.
The lesson is mechanical, not editorial: before you compare venues, pull the numbers from the source that has no reason to round them up — and pull them again the day you act, because these fields move.
Verify official sources
Do not trust this article. Reproduce it:
- Gate:
GET https://api.gateio.ws/api/v4/futures/usdt/contracts(fieldsmaker_fee_rate,taker_fee_rate; field semantics defined in Gate's published SDK docs,docs/Contract.md) - KuCoin:
GET https://api-futures.kucoin.com/api/v1/contracts/XBTUSDTM(fieldsmakerFeeRate,takerFeeRate,maxLeverage,initialMargin) - MEXC:
GET https://contract.mexc.com/api/v1/contract/detail?contract_code=BTC_USDT(fieldsmakerFeeRate,takerFeeRate,feeRateType) - Bitget:
GET https://api.bitget.com/api/v2/mix/market/contracts?productType=usdt-futures(fieldsmakerFeeRate,takerFeeRate)
All four are unauthenticated, published by the exchanges themselves, and queried here at 02:10–02:14 UTC on 2026-10-09 (two rounds, identical results). If a field disagrees with the venue's own fee page, the fee page — or your account's tier — wins. Always verify official sources.
This post is for education and transparency around public market-data fields only. It is not investment, trading, tax or legal advice (not financial advice). Leveraged perpetual contracts can lose more than you deposit. AI-assisted drafting; affiliate disclosure per the note at the top (#ad: none present in this article).
Top comments (0)