Fees
Two taker rates, flat, charged on fills. This page lists every charge in the product, names the ledger account each one lands in, and shows the arithmetic that produces it.
The two rates
Spot and convert
0.10%10 bps
Charged in the asset you receive — the base on a buy, the quote on a sell.
10 USDT on a 10,000 USDT fill
Perpetuals
0.05%5 bps
Charged in USDT on the fill's notional, at open and again at close.
5 USDT on a 10,000 USDT fill
Both numbers are imported from the code that charges them, so this page cannot disagree with your account. There are no volume tiers, no VIP levels, no referral discounts and no token that buys a lower rate — everyone pays the same two numbers, because the engine has only these two numbers to charge.
The schedule
8 charges exist in this product. 7 are fees this exchange collects; the last is funding, which it does not keep. The ledger account each one lands in is how you tell them apart — and what funding actually is has the rest.
5 of the 7come from the two trading engines and are charged as a rate on what you traded. The other two are the lending desk’s liquidation penalty and the test-network withdrawal rail’s flat fee. They are here because all three engines settle into the same account.
Spot fill
0.10%Market, limit or a triggered stop — every fill, whether it crossed immediately or rested first.
- Taken in
- The asset received: base on a buy, quote on a sell
- Lands in
- fees
Convert
0.10%On the gross amount the rate produces, before it is credited.
- Taken in
- The asset received
- Lands in
- fees
Perpetual open or increase
0.05%On the notional of the fill, not on the margin behind it.
- Taken in
- USDT
- Lands in
- fees
Perpetual reduce or close
0.05%The same rate again. A round trip pays it twice.
- Taken in
- USDT
- Lands in
- fees
Perpetual liquidation
0.05%On quantity × mark price, taken out of the margin before anything is returned. Nothing further is added on top.
- Taken in
- USDT
- Lands in
- fees
Lending collateral liquidation
5.00%A different engine, and the one place a penalty is levied rather than a rate charged. When a loan breaches its maintenance LTV the desk sells the collateral at a fresh server mark and keeps this share of what it marked at, before the debt is settled. Repaid interest goes to suppliers, not here.
- Taken in
- USDT, out of the collateral’s marked value
- Lands in
- fees
Test-network withdrawal
1 unitsA flat amount reserved with the request, returned if a person rejects it, and settled only after approval and treasury payout.
- Taken in
- The asset withdrawn
- Lands in
- fees
Funding
Venue rateNot ours. The venue's published rate, every eight hours, on the position's notional.
- Taken in
- USDT — or paid to you, when the rate runs your way
- Lands in
- external
fees and external are real ledger accounts, not categories invented for this table. Where the money goes names all four of them.
Nothing else is charged
Every line below is a fee a real exchange has and this one does not. None is a promotion or a waiver that could end: each is absent because the thing it would charge for does not exist in the code.
That list is not short because the product is generous. It is short because most of what an exchange charges for is custody, settlement and a payments relationship. Here there is no custody and no payments relationship, and the one settlement rail that exists is confined to test networks, where nothing it carries has a price.
Maker rebate
There is no maker side. Every order here — including a limit order that rests for an hour — eventually executes against the venue’s book. Your order never provides liquidity anyone can trade against, so a rebate would pay you for something that did not happen.
Additional withdrawal surcharge
A configured test-network withdrawal carries the flat fee quoted on the Withdraw page; there is no second processing or gas surcharge. The requested amount and flat fee are reserved together while one person reviews the request. A rejection returns both; an approval settles the recorded fee when the treasury payout completes.
A penalty on a perpetual liquidation
A perpetual liquidation is charged the ordinary perpetual rate on quantity × mark and nothing further. Venues that add a separate penalty on top — often a whole percent of notional, to fund an insurance pool — have an insurance fund to feed. There is no fund here, so there is nothing to levy for. The word perpetual is load bearing: the lending desk is a different engine and does levy a penalty, 5.00% of the collateral’s marked value, and it is a row in the schedule above rather than an exception hidden in this list.
Spread on the convert rate
The convert rate is each leg’s last traded price against USDT, divided. Nothing is added to it and no bid/ask is applied, which is why the fee is a visible line rather than a number folded into the price.
Mainnet network costs
The configured rail is confined to test networks, so it passes through no network cost with monetary value. The flat withdrawal fee is the only amount added to a request. If mainnet withdrawals ever ship, network cost will be its own published line here, not a number folded into a rate.
Deposit fee
A deposit here is a credit this system issues to itself: two balanced ledger entries, one crediting you and one debiting the account that stands for the outside world. There is no payment rail to charge for.
Wallet transfer fee
Moving balances between the spot, futures and funding wallets writes two legs of one asset and nothing else. No fee leg is constructed, so none can be taken.
Placement, amendment and cancellation
Placing a resting order locks funds; cancelling releases exactly what was locked, from the amount the order recorded. Both are movement between your own buckets.
Volume tiers and VIP levels
The engine holds one spot rate and one perpetual rate. There is no 30-day volume table to climb, and no rate that improves because you traded more.
Inactivity and account fees
Nothing runs against an account on a schedule except the funding sweep, and that only touches open positions.
Market data and API access
The data is a public venue feed, relayed. Charging for it would be charging for someone else’s work.
Where each charge lands
An order can reach 7 stages, and money leaves your account at 4 of them. The other 3 are free — and they are the ones people most often expect to pay for.
The one to read twice is the perpetual round trip. Opening charges 0.05% and closing charges it again, so a position that goes out and comes back has paid 0.10% of its notional before any price movement is counted — and a far larger share of the margin that funded it. What that comes to at each leverage.
Placed
No chargeA resting order moves funds from available to locked — a buy locks quote at its limit price, a sell locks the base it is offering. Reserved at placement, not at fill.
Resting
No chargeThe order waits at its price. Nothing is metered while it waits, and an order that never fills costs nothing at all.
Cancelled or expired
No chargeExactly what was locked is released, from the amount the order recorded — never recomputed from a price that has since moved.
Filled
0.10% spot · 0.05% perpThe order walks the venue's live book, level by level, and settles in one transaction. This is the only moment a trading fee comes into existence.
Position held
Perpetualsvenue rate → externalEvery eight hours the open position pays or receives funding at the rate the venue publishes. Taken from available first, then from the position’s margin.
Position closed
Perpetuals0.05%A reducing fill: margin is released, realised PnL settles, and the perpetual rate applies to the closing notional exactly as it applied to the opening one.
Liquidated
Perpetuals0.05%Equity at or below maintenance margin. The engine closes the position at the mark price and charges the ordinary perpetual rate on quantity × mark.
What placing an order locks
A reservation is not a fee. It is your own money moved from available to locked the moment an order is accepted, and released in full if the order never fills. It is also the number that decides whether an order can be placed at all, which makes it the first cost anyone actually meets.
Funds are reserved at placement, not at fill. Without that, two orders each pass their own balance check against the same money and both rest; whichever fills second overdraws an account that looked solvent to both of them.
Spot limit buy
engine/reserve.ts
Limit price × quantity, in the quote asset. Exact, never rounded — the most the order can ever cost, because a limit buy cannot fill above its price.
Fee not reserved. The fee comes out of the base that arrives, so reserving for it would lock quote the order will never spend.
Spot limit sell
engine/reserve.ts
The quantity itself, in the base asset. Nothing is reserved in the quote asset at all.
Fee not reserved. The fee comes out of the quote that arrives, which the order does not hold yet.
Spot market order
engine/lifecycle.ts
Nothing. It fills in the same breath as it is placed and never rests, so it spends straight out of available — placement only checks that available covers the walk it just planned.
Fee not reserved. It comes out of the asset the fill delivers, so it is never part of what the order has to be able to afford.
Perpetual — the part that rests
engine/futures.ts
Initial margin plus the 0.05% fee on the resting quantity, priced at the order's own limit. That is the reservation rule: margin and fee together, in one number, for every non-reduce-only order.
Fee reserved. Both are charged in the quote asset the order is already reserving, and a fill with no fee reserved would have nothing to pay from.
Perpetual — the part that fills now
engine/futures.ts
Nothing is locked. Placement instead checks that available covers margin plus fee at the price the order actually plans to fill at — not at its limit, because a sell that fills above its limit produces a larger notional and needs more margin, not less.
Fee reserved. It is part of the affordability check, then paid straight out of available when the fill settles.
Perpetual — reduce-only
engine/futures.ts
Nothing. The position it reduces is its funding.
Fee not reserved. The fee is taken out of the margin released by the close, so nothing has to be set aside first.
The pattern down the right-hand side is the whole rule: a fee is reserved only when it is charged in the same asset the order is already holding. On spot it never is — the fee comes out of what arrives — so reserving for it would lock money the order cannot spend, and produce “insufficient funds” on an account with exactly enough. On a perpetual it always is, because margin and fee are both quote.
One fill, line by line
A 1 BTC market buy on BTCUSDT, from order to ledger. Every number below was produced when this page rendered, by the same two functions a real order runs: the matcher that walks the book and the settler that builds the legs. None of it is written down — change the fee rate and this section changes with it.
The ask side, as the order found it
size in BTC- 64,660USDTtook 0.4 of 0.4
- 64,662.5USDTtook 0.25 of 0.25
- 64,668USDTtook 0.35 of 0.6
- 64,675USDT1.2 left standing
What it came to
| Ordered | 1 BTC, market |
|---|---|
| Levels consumed | 3 of 4 |
| Average price | 64,663.425 USDT |
| At the best ask alone | 64,660 USDT |
| Quote actually spent | 64,663.425 USDT |
| Fee — 0.10% of 1 BTC | 0.001 BTC |
| Credited to you | 0.999 BTC |
The fee is 0.001 BTC — 64.663425 USDT at the price it filled at. Clearing 3 levels rather than one cost a further 3.425 USDT against the best ask, which is 0.5297 bps — an order-book cost, not a charge, and on this order about a twentieth of the fee. It behaves differently from the fee in the way that matters: the rate is flat at any size, while the walk depends entirely on what the book is holding at that moment. On a deep pair at this size it is noise. On a thin one, or on a size that clears most of a side, it stops being noise, and no fee schedule can tell you which you are about to do.
The 5 ledger entries this fill wrote
| Account | Asset | Amount |
|---|---|---|
| Youavailable | USDT | -64,663.425 |
| external | USDT | +64,663.425 |
| external | BTC | -1 |
| Youavailable | BTC | +0.999 |
| fees | BTC | +0.001 |
Both assets sum to zero across those 5 rows, and a transfer that does not is refused before it reaches the database. That is why the fee has to be its own entry: there is no way to take money out of one account here without naming the account it went into.
Drawn, the same 5 entries are one movement with a fork at the end. The quote leaves your wallet for external; the base comes back out of it and splits, 0.999 to you and 0.001 to an account nobody owns.
The market is real and its filters are the venue’s — tick size 0.01, lot step 0.00001, minimum notional 5 USDT. The four book levels are illustrative: a live BTCUSDT ask side is far finer, and a one-BTC order routinely touches dozens of levels holding dust. Everything derived from those four levels is the engine’s own arithmetic.
Where the money goes
Every balance in this product is the sum of entries in one double-entry ledger. The ledger knows 10 buckets, and 6 of them are out of reach of anything on this page: three belong to the test-network settlement rail, two hold customer balances committed to the lending desk, and one holds house money already reserved to a reward campaign. That leaves the four below. Two of them are yours. Two have no owner at all, and one of those two is where every fee lands.
- available
- Yours, and spendable — one balance per wallet, per asset.
- locked
- Yours, but committed: a resting order’s reservation, or the margin behind an open position.
- external
- The outside world. No owner, and permanently negative by design — that number is what the exchange owes everyone outside it. Deposits, both sides of every fill, and funding all cross here.
- fees
- House revenue. Also owner-less, and the destination of all 7 fees in the schedule above; the test-network payout rail would settle its flat fee here too. It is not a dead end, and it is the one place on this page money runs backwards: 10% of every settled fill fee is claimable straight back out of it into a member’s spot wallet, and a reward campaign has to reserve its whole winner cap out of it, into the rewards bucket, before it is allowed to start. Both are on Rewards.
Naming the account is the disclosure. A fee that is described only as a percentage can be reconciled against nothing; a fee that is a leg addressed to fees can be summed, and it has to balance against the entry it came from or the transfer is rejected outright. Real exchanges do not publish this because their fee revenue is a business number. Ours is a schema.
Work out a cost
An estimator, not a ticket. It has no side, no symbol and no submit, because it places nothing — it takes a notional and returns what the two engines would charge on it, using their rates and the real rounding helpers on real decimal strings.
The value of one fill, in the quote asset.
Spot
0.10% · 10 bpsCharged in the asset you receive — the quote on a sell, the base on a buy.
- Fee on this fill
- 10 USDT
- Effective rate
- 10.00 bps
- Round trip — in and out
- 20 USDT
This is the figure for a sell, a convert, and a buy large enough that the rounding does not bite. On a buy, the fee is taken in the base asset and rounded up at the venue’s lot step, which is far coarser than 8 decimals — on a small buy that costs more than the rate above. How much more.
Perpetuals
0.05% · 5 bpsCharged in USDT on the fill's notional, at open and again at close.
- Fee on this fill
- 5 USDT
- Effective rate
- 5.00 bps
- Round trip — open and close
- 10 USDT
- Margin at 10×
- 1,000 USDT
- Cash needed to open
- 1,005 USDT
- Round trip against that margin
- 100.00 bps
The last line is the one leverage changes. The rate is charged on notional, so at 10× a round trip costs 10 times as many basis points of the money you actually posted — before funding, and before the market moves at all.
An estimate, computed with the engine’s rates and its rounding helpers. It places nothing, prices no market and reserves no balance — a real fill is priced by walking the live book, so its notional is whatever the depth at that moment makes it.
What a round trip costs
Nobody trades one fill. The cost that decides whether a strategy survives is getting in and back out again — and on a leveraged position that cost is not the one on the rate card, because the rate is charged on the notional while the account only ever posted the margin.
Below is one 10,000 USDT perpetual position, opened and closed at the same price. The rate never changes down the table and neither does the amount of USDT it comes to. The last column runs from 0.10% to 7.50%, for the only reason it can: margin is notional divided by leverage, so the same 0.05% is a larger share of a smaller stake.
1×
0.10% of margin- Margin
- 10,000 USDT
- Reserved to open
- 10,005 USDT
- Both fees
- 10 USDT
2×
0.20% of margin- Margin
- 5,000 USDT
- Reserved to open
- 5,005 USDT
- Both fees
- 10 USDT
5×
0.50% of margin- Margin
- 2,000 USDT
- Reserved to open
- 2,005 USDT
- Both fees
- 10 USDT
10×
1.00% of margin- Margin
- 1,000 USDT
- Reserved to open
- 1,005 USDT
- Both fees
- 10 USDT
25×
2.50% of margin- Margin
- 400 USDT
- Reserved to open
- 405 USDT
- Both fees
- 10 USDT
50×
5.00% of margin- Margin
- 200 USDT
- Reserved to open
- 205 USDT
- Both fees
- 10 USDT
75×
7.50% of margin- Margin
- 133.33333334 USDT
- Reserved to open
- 138.33333334 USDT
- Both fees
- 10 USDT
Margin is initialMargin, the reservation is marginWithFee — the function placement calls to size a lock — and both fees are takerFee at ledger precision. Funding and the book walk are excluded, and on a position held for more than a session funding is usually the larger of the two.
How far the price has to move to break even
Slightly further than twice the rate, and the gap is not rounding. The closing fee is charged on the closing notional, so a position that moved in your favour pays a bigger second fee than its first. Solve it and the required move is 2f / (1 − f) rather than 2f.
- Perpetuals
0.1001%
the rise a long needs, against 0.10% of fees
0.1000% — the fall a short needs
- Spot, in and back out
0.2003%
the rise a long needs, against 0.20% of fees
0.1999% — the fall a short needs
A short’s break-even move is marginally shorter for the mirror-image reason: it closes at a smaller notional, so its second fee is smaller. Both figures are rounded up — a required move that rounded down would tell you that you needed less than you do. Neither includes funding, the book walk, or the lot-step rounding two sections below.
Which way every number rounds
Rounding direction is not a detail here; it is the difference between an engine that settles and one that quietly leaks. Two rules carry most of it, and they point in opposite directions on purpose.
A quantity rounds down, because rounding one up asks an account to spend money it does not have — the order passes its own balance check and then fails at settlement, which is the worst possible place to discover it. A fee rounds up, because rounding one down means the house absorbs the remainder on every trade, and each individual shortfall is small enough to look like a rounding error rather than a leak.
0.011 BTC × 0.10%
= 0.000011 exactly
What is charged
0.00002
If it rounded down
0.00001
The house would absorb 0.00001 BTC on this one order. At volume that is a real number, and it never appears in any report because each shortfall looks like a rounding error.
Selling a balance of 0.123456789 BTC
= 0.123456789 exactly
What is placed
0.12345
If it rounded up
0.12346
The order would offer 0.000003211 BTC the account does not hold. It passes its own balance check, rests, and fails at settlement — the worst possible place to find out.
Everything else follows the same principle: where a rounding has a beneficiary, the house is it. Every one of them is listed below, because a schedule that publishes a rate and hides its rounding has published the smaller half of the price.
Fill quantity
Downat the venue's lot step
Taking more than a level holds would invent liquidity the venue never offered.
engine/matching.ts
Trading fee
Upat the precision of the asset it is charged in
The house would absorb the remainder on every trade, and each shortfall is small enough to look like a rounding error rather than a leak.
engine/fees.ts
Amount spent on a convert
Downat 8 decimals
Rounding a debit up spends money the account does not have.
engine/convert.ts
Amount credited by a convert
Downat 8 decimals
A credit that rounds up pays out value the rate did not produce.
engine/convert.ts
Initial margin
Upat 8 decimals
A position would sit on slightly less collateral than its leverage claims, and the shortfall would be the house’s.
core/futures.ts
Margin released by a partial close
Downat 8 decimals
Releasing more than the pro-rata share hands back margin the position still needs.
engine/futures-plan.ts
Realised PnL — a gain
Downat 8 decimals
Recorded PnL has to equal settled PnL exactly, so the gain shrinks toward zero rather than away from it.
engine/futures-plan.ts
Realised PnL — a loss
Upat 8 decimals
The same rule seen from the other side: a loss grows away from zero.
engine/futures-plan.ts
Funding you pay
Upat 8 decimals
Both funding directions round the same way the fee does.
core/futures.ts
Funding you receive
Downat 8 decimals
The mirror of the line above.
core/futures.ts
One rounding costs more than the rate says
On a spot buy, the fee is charged in the base asset and rounded up at that market’s lot step — the same precision the venue uses for quantities. On BTCUSDT that step is 0.00001 BTC — so 0.00001 BTC is the smallest fee a BTC buy can be charged, however small the order is.
Below 0.01 BTC that floor is the whole fee, so the effective rate is a multiple of 0.10%. Above it the rounding usually costs nothing — but the 0.011 row is in the table deliberately: a several-hundred-dollar order is not automatically clear of it either. What decides the outcome is whether the fee lands on the lot grid, not whether the order feels large.
| You buy | Roughly | Fee charged | Effective rate |
|---|---|---|---|
| 0.0001 BTC | 6.46 USDT | 0.00001 | 1,000.00 bpsrounded |
| 0.001 BTC | 64.66 USDT | 0.00001 | 100.00 bpsrounded |
| 0.005 BTC | 323.31 USDT | 0.00001 | 20.00 bpsrounded |
| 0.01 BTC | 646.63 USDT | 0.00001 | 10.00 bps |
| 0.011 BTC | 711.29 USDT | 0.00002 | 18.19 bpsrounded |
| 0.1 BTC | 6,466.34 USDT | 0.0001 | 10.00 bps |
| 1 BTC | 64,663.42 USDT | 0.001 | 10.00 bps |
Scroll the table sideways for the fee and the effective rate.
Computed by calling the engine’s own takerFee at this market’s lot precision, priced at the example fill above. The floor is a spot-buy effect only: a sell, a convert and every perpetual charge round at 8 decimals in the quote asset, where a step that size is far below anything a fee can reach. If you are trading small size on spot, buy in round lots or use convert, which does not have this rounding.
Convert, against the two orders it replaces
Going from one asset to another on the spot book takes two market orders through USDT — two fees, two book walks, two spreads. A convert is one operation at one rate, and it is charged 0.10% once. On this product that genuinely is the cheaper route, which is the opposite of how the same button works nearly everywhere else.
The reason it is cheaper here is that there is nowhere to hide a markup. A retail convert usually quotes a rate with the venue’s margin already inside it, so the advertised zero fee is paid anyway and cannot be measured. Ours is each leg’s last traded price against USDT, divided — and the fee is a ledger leg addressed to fees, which is the only charge in the path.
Trading fee
- Two spot orders
- 0.10% twice — once on each leg
- One convert
- Cheaper as a convert.0.10% once, on the gross amount before it is credited
Price used
- Two spot orders
- The live book, walked level by level. Two books, two walks.
- One convert
- Each leg's last traded price against USDT, divided. One number, no walk.
Spread
- Two spot orders
- Paid twice: a market order lifts the ask and hits the bid.
- One convert
- Cheaper as a convert.None. A last price sits between the two, and nothing is added to it.
Depth
- Two spot orders
- Modelled. A size that clears three levels gets a worse average, exactly as it would at the venue.
- One convert
- Less realistic as a convert.Not modelled. Any size fills at the one rate, which stops being realistic well before it stops being generous.
Rounding
- Two spot orders
- A buy's fee rounds up at the venue's lot step, which on a small order costs more than the rate.
- One convert
- Cheaper as a convert.Everything rounds at ledger precision, where the step is far below anything a fee reaches.
If the price moves
- Two spot orders
- A market order takes whatever the book holds when it arrives.
- One convert
- Refused past the tolerance in either direction, and the amount is returned untouched.
| Aspect | Two spot orders | One convert |
|---|---|---|
| Trading fee | 0.10% twice — once on each leg | Cheaper as a convert.0.10% once, on the gross amount before it is credited |
| Price used | The live book, walked level by level. Two books, two walks. | Each leg's last traded price against USDT, divided. One number, no walk. |
| Spread | Paid twice: a market order lifts the ask and hits the bid. | Cheaper as a convert.None. A last price sits between the two, and nothing is added to it. |
| Depth | Modelled. A size that clears three levels gets a worse average, exactly as it would at the venue. | Less realistic as a convert.Not modelled. Any size fills at the one rate, which stops being realistic well before it stops being generous. |
| Rounding | A buy's fee rounds up at the venue's lot step, which on a small order costs more than the rate. | Cheaper as a convert.Everything rounds at ledger precision, where the step is far below anything a fee reaches. |
| If the price moves | A market order takes whatever the book holds when it arrives. | Refused past the tolerance in either direction, and the amount is returned untouched. |
The row worth reading twice is depth. A last price is not a tradeable price, and the same missing book that removes the spread also removes the slippage — so a convert of any size fills at that one rate. For a wallet-sized balance that is exact. For a size that would clear several levels of the real book it is a simplification in your favour, and the spot terminal is where the honest version of that trade lives.
The rate is re-derived on the server at execution and compared against the one you were shown. Beyond 50 bps in either direction the conversion is refused and your balance is untouched — a rate that moved in your favour is still not the trade you agreed to. A convert whose result would be nothing after the fee is refused too, rather than executed for zero.
Funding is not a fee we charge
A perpetual future has no expiry, so nothing forces its price back toward spot. Funding is what does that job. Every eight hours — at 00:00, 08:00 and 16:00 UTC — the side of the market paying the premium pays the other side. A positive rate means longs pay and shorts receive; a negative rate reverses it. It is a transfer between traders, and at a real venue the exchange takes no part of it.
We take no part of it either, and the ledger is where you can check rather than take our word: a funding payment writes its legs against external — the same contra account a deposit uses — and never against fees. The rate itself is the venue’s published one, read from its premium index. We do not set it, smooth it, or add to it.
What is ours is the plumbing, and it has two rules worth knowing. The payment comes out of your available balance first and only then out of the position’s own margin. And a charge large enough to exhaust that margin does not whittle the position down — it liquidates it, in the same transaction, through the same code the liquidation sweep uses. On a position held for more than a session, funding is usually the larger number: it recurs three times a day, while the 0.05% fee is paid twice in the position’s life. The perpetuals lesson works the arithmetic through against the live rate.
One more rule, and it runs in your favour. Only the most recent crossing is ever charged. If the worker that performs the sweep is down across a crossing, that crossing is forgiven rather than backfilled — the position is charged once at the next sweep, for the latest crossing, and the ones it slept through are never collected. A charge that arrives late for a rate that has since changed is not the charge the market made.
When you pay
- Youavailable− what the balance covers
- Youlocked− the remainder, from margin
- external+ the whole payment
- feesno leg is written
When you receive
- Youavailable+ the whole payment
- external− the whole payment
- feesno leg is written
No amounts, because a funding amount is rate × quantity × mark and all three are live. Inventing one to make this drawing look concrete is the move this page exists to refuse.
What a liquidation costs
A position is liquidated when its equity — margin plus unrealised PnL, measured at the venue’s mark price rather than at the last trade — falls to or below maintenance margin. That is a flat 0.50% of notional, with no tiered brackets and no size-dependent schedule. The engine then closes the position at the mark and charges the ordinary perpetual rate, 0.05%, on quantity × mark. There is no separate penalty on top of a perpetual liquidation.
A lending liquidation is the other engine and works the other way. It is not a rate on a fill: the desk sells the collateral at a fresh server mark and keeps 5.00% of what it marked at before settling the debt, which is a penalty in the sense this section says perpetuals do not have. Any surplus after the debt goes back to the borrower, and a mark that would not cover the debt after the penalty is refused outright rather than settled at a loss to the pool.
The order the arithmetic runs in is the part worth knowing. Margin, plus realised PnL, minus the fee — and the result is floored at zero. A loss can consume the whole margin you posted, and the fee can consume what is left of it, but neither can reach past it. Anything beyond the margin is absorbed by external, and that is the whole meaning of isolated margin: the most a position can cost you is the margin standing behind it.
A mark price older than sixty seconds is not used at all. The sweep reports the symbol as degraded and skips it, because a stale price must never settle anything — and a liquidation is the least reversible thing this engine does.
There is no other trader on the other side of any of this.binXbase is the counterparty to every fill, and the 7 fees it charges are collected into fees, an account it owns — out of which 10% of every settled fill fee is claimable back on Rewards. Funding is the exception, and the ledger is where the exception shows: it crosses external and stops there. The market your order walks is a live venue feed — the book, the prices and the depth are real, which is why the cost of a fill here is a number worth reading. How this works draws the line in full.
Every rate, every rounding direction and every ledger account on this page is imported from the module that enforces it, and the worked example is the engine’s own output rather than a figure written down beside it. That is the only guarantee worth giving on a page like this: not that the numbers are right today, but that they cannot quietly stop being right.