Trading fees
Paper fees are simulation terms you select, not a copy of your live exchange account. Each paper host offers a list of fee tiers that approximate its exchange’s published schedules; they are not guaranteed to match the exchange’s current rates. You pick the tier, and paper charges it on every fill: the maker rate when a resting order fills, the taker rate when an order takes liquidity. Paper does not move you between tiers by trading volume, and does not apply VIP or regional schedules, promotions or fee-token discounts.Choose a tier
1
Read the available tiers
Call Get fee settings with the account ID:The response lists every tier and the one selected. Each tier has default rates and may override them for
instruments whose canonical symbol matches The values above are illustrative. Read the real tiers and rates from the API; they can change.
instrumentPattern, a regular expression:2
Select a tier
Call Set fee tier with a tier The response is the updated fee settings. Selecting the tier that is already selected changes nothing, so the call
is safe to repeat.
id:3
Check the rates for an instrument
Call Get effective fee rates to see exactly what new
orders on one instrument will pay, after any instrument override:With the illustrative Tier B selected, the response shows a maker rebate:
feeTier in Create a paper account, but since
you can only read the tiers once an account exists, the simplest path is to omit feeTier and call Set fee tier
afterwards.
Reading the rates
- Rates are percentages as decimal strings:
"0.04"means 0.04% of the fill’s value. - A negative rate is a rebate: the account receives it instead of paying it.
fractionDigitsis the number of decimal places each fee is rounded to;nullmeans fees are not rounded. Paper rounds each fill’s fee separately, so a very small fill can carry a fee of zero.
Which asset fees are charged in
Fee terms are fixed when you place an order
An order keeps the rates in force when it was placed. If you change tier while orders are resting, waiting to trigger or partly filled, those orders go on paying their original rates; only orders placed after the change use the new tier. Get effective fee rates always describes new orders.Perpetual funding
Paper charges funding on linear and inverse perpetuals at each of the venue’s funding times, using the venue’s finalised funding rate for the period. Spot markets pay no funding. Funding is never charged from indicative or predicted rates, such as those Get indicative fundings returns, and a finalised rate of zero pays nothing.Who pays
- With a positive rate, long positions pay and short positions receive.
- With a negative rate, short positions pay and long positions receive.
- In hedging mode, the long and short legs are charged separately and never netted against each other.
Which position counts
The position that counts is the one you held immediately before the funding time.- A position closed exactly at the funding time still pays for that funding time.
- A position opened exactly at the funding time pays from the next one.
How much
The payment is the position’s value at the funding time multiplied by the rate. The price is estimated from the venue’s mark price at the funding time. For a linear perpetual, paid in the settlement asset: For an inverse perpetual, paid in the base asset: For example, a long of 2 contracts of a linear perpetual with a contract size of 1, a price of 100 and a finalised rate of 0.01 pays 2 × 1 × 100 × 0.01 = 2 units of the settlement asset. A short of the same size receives 2. ReadcontractSize and settlementAsset from the market’s contractDetails.
When it posts
Each payment posts as a signedFundingPayment transaction whose effectiveAt is the funding time. Paper waits for
the venue to publish the finalised rate and for the price it needs, so a payment can appear some time after the
funding time it belongs to. Funding posts in full even if it takes a balance negative.
FundingPayment appears in the paper host’s accountTransactions.supportedTransactionTypes when the host charges
funding. It means payments may appear, not that every market pays at every funding time: paper charges nothing for a
period when the inputs it needs are not available.
If the paper host is not running at a funding time, that payment may post later, when your position in the market next
changes, or not at all if the position stays unchanged.
Settlement
On perpetuals, realised profit and loss posts as aSettlement transaction when a fill reduces or closes a position:
positive for a gain, negative for a loss. Spot trades do not post settlements; the trade itself moves your balances.
Read it all back
Every fee, funding payment, settlement and deposit is a transaction on the account. Read them with List transactions or, where the host supports it, follow them live with the transaction stream. Paper hosts offer transaction history and the transaction stream when their model host does, so check the paper host’saccountTransactions capabilities:
groupId ties together postings that belong to the same event: the fee and settlement from one fill share it, and so
do the funding payments for one instrument at one funding time. Treat it as an opaque string. A funding payment looks
like this:
Because funding can post after its funding time, a
FundingPayment can sort behind history you have already read.
If you track funding through List transactions, re-read the most recent page or two after each funding time, and
match transactions by id, which is stable across history and the stream.totalFees and realizedPnl, and each fill’s fees,
realizedPnl and role (maker or taker), through Get an order and
List fills.