Fees and profit share

Exactly how a profitable copy is split — the platform fee first, then the leader's cut of what remains — where each leg lands, what happens on a loss, and how the money is recorded for reconciliation.

4 min readUpdated 3 August 2026fees, profit-share, revenue, wallets, accounting

Copy trading makes money in one place: a share of a follower's realised profit. There is no subscription charge, no fee on allocating capital, and no fee on a losing trade. If a copy loses money, nobody takes anything from anybody.

The split

Two percentages apply, in a fixed order.

platformFee      = grossProfit × copyTradingPlatformFeePercent / 100
afterPlatformFee = grossProfit − platformFee
leaderShare      = afterPlatformFee × leader.profitSharePercent / 100
followerNet      = afterPlatformFee − leaderShare

The platform is paid first, off the top. The leader's percentage is then taken from what remains, not from the gross. This matters when you quote numbers: a leader advertising 20% on a platform charging 2% receives 19.6% of the gross, not 20%.

A worked example on 100 USDT of gross profit, with the shipped 2% platform fee and a leader on 20%:

Leg Amount Lands in
Gross profit 100.00 USDT Follower's COPY_TRADING wallet, credited by the venue
Platform fee (2%) 2.00 USDT Debited from the follower, credited to the Super Admin wallet
Leader share (20% of 98) 19.60 USDT Transferred from the follower to the leader's SPOT wallet
Follower keeps 78.40 USDT Stays in the follower's COPY_TRADING wallet

Every figure is denominated in the quote currency of the market that produced it. A follower copying BTC/USDT and ETH/BTC is paid in USDT and BTC respectively, and their leader is paid in the same two.

What happens on a loss

Nothing. A copy that closes at or below break-even produces no platform fee, no leader share, and no transaction rows for either. The loss stays entirely with the follower — which is the point of the model, and the reason the risk caps in Following a trader are worth setting properly.

Where each leg actually moves

The follower has already received the full proceeds of their exit from the matching engine. The leader's share therefore comes out of that — a transfer from the follower's COPY_TRADING wallet into the leader's SPOT wallet.

An earlier build credited the leader with nothing debited from anyone, which minted the share from nothing, and credited it to the leader's ECO wallet while the binary path paid SPOT — one leader, two payout destinations, depending on which of their trades a follower had copied. Both are fixed: the share is a real transfer and both paths pay SPOT.

Spot profit distribution used to write a fee line into admin reporting and take nothing. The follower kept the fee, no admin wallet was credited, and the revenue this product reported for itself was fiction.

The fee is now debited from the follower's COPY_TRADING wallet and booked through the shared platform fee collector before the record is written. Reported revenue became real on that upgrade, and follower payouts fell by the fee that had always been reported.

One accounting wrinkle you will see in reporting: the platform's adminProfit type is a fixed database enum with no copy-trading member. A spot copy-trading fee is therefore booked as TRADE, and a binary one as BINARY_ORDER, with the copy-trading provenance recorded in the entry's metadata. If you reconcile revenue by type, copy trading will not appear as its own line.

Turning profit share off

copyTradingEnableProfitShare is a master switch on the leader tab.

Switched off, the leader's share is computed as zero and no transfer to the leader happens. The platform fee is still charged. The follower keeps everything the fee leaves behind.

That is the right behaviour for a platform that wants copy trading as a retention feature rather than a revenue-share marketplace, but tell your leaders before you flip it — their advertised percentage silently stops paying.

The individual leader's percentage is bounded at 0–50% by the request validator. copyTradingMaxProfitSharePercent is read into the settings object but no code path consults it, so lowering it does not lower the ceiling — use the approval queue to reject a leader asking for more than you want to allow.

Binary settlement is the same split, arrived at differently

On a winning binary copy the binary engine credits the full profit to the follower's COPY_TRADING wallet at expiry. Copy trading then charges the split out of that wallet: the leader's share is transferred to their SPOT wallet and the platform fee goes to the Super Admin wallet through the same collector.

The allocation's stake budget tracks the wallet rather than being reconstructed: it grows by the net profit on a win and shrinks by the consumed stake on a loss, so budget accounting never drifts from the wallet the binary engine settles into.

How the money is recorded

Every movement writes a row into copy_trading_transactions. The types you will see, and who they belong to:

Type Written for
ALLOCATION Money moving into the copy-trading wallet, and money committed to a copy. Written twice per transfer — negative against the source, positive against the destination
DEALLOCATION Money returning to ECO or SPOT when a subscription stops or funds are removed
PROFIT_SHARE Two rows per settlement: one crediting the leader, one recording what the follower paid
FEE The platform's cut
TRADE_PROFIT / TRADE_LOSS / REFUND Realised results and refunds

Each row carries balanceBefore and balanceAfter for the wallet it describes, plus the currency — never an implied USDT. Reconciling a follower's position means reading the rows for their subscription in order, not summing amounts across currencies.

Allocations, profit shares and fees are each recorded in whatever quote asset their market used. Adding a USDT column to a BTC column produces a number that is not an amount in any currency.

The admin dashboard now reports which quote asset its figures are in, prints the ticker when the whole book agrees on one, and renders the figure bare with a count of assets when it does not. Apply the same discipline to anything you build on top of these tables.

Reversing a settlement

An administrator with edit.copy_trading can reverse a copy-trading transaction from /admin/copy-trading/transaction. A reason is required.

The reversal creates an opposing transaction of the appropriate type, adjusts the wallet balance, updates the follower's statistics and writes an audit entry. It refuses if the transaction has already been reversed, and it refuses if the reversal would take the wallet balance negative.

Use it for a settlement that demonstrably should not have happened. It is not a refund tool for an unhappy follower — reversing one leg of a settled trade leaves the other legs standing.