Revenue options
what the code offers an operator.
KESTREL is revenue-ready: it has exchange broker ids on orders and plans with limits. Nothing that earns money is switched on by default, KESTREL takes no fee itself, and nothing here is a forecast.
01The mechanisms in the code
| Mechanism | How it works | Where |
|---|---|---|
| Exchange broker ids | Your broker or partner id is attached to the orders your users place, so the exchange can credit you its broker rebate under its own program. | Console, Exchange broker ids |
| Plans and limits | Free and Pro plans with their own limits and a price text the app shows. You sell the plan your own way and assign it to the user. | Console, Plans & limits and Users |
| Copy-trading providers | In SaaS mode users can publish a live account that others follow. No fee is attached in the code; you decide whether following needs a paid plan, through the copy-link limit of each plan. | Console, Tenancy |
KESTREL has no payment gateway and no billing: it never charges a user and records no revenue (server/src/admin/kit.ts, server/src/plans.ts).
02Broker ids
Open the console, Exchange broker ids. Enter the ids you received from each exchange's broker or partner program and turn on Attach my broker ids to orders. The ids and the switch start empty and off.
| Field | What the server sends |
|---|---|
| Binance spot broker id | Prefix of the client order id on spot orders |
| Binance futures broker id | Prefix of the client order id on futures orders |
| OKX broker code | The order tag and the client order id prefix |
| Bybit broker id | The Referer header of order requests |
| Bitget channel code | The X-CHANNEL-API-CODE header |
- With the switch off, no id is attached. The server also removes the default broker ids that the exchange library (ccxt) would add, so no order ever carries someone else's id (
server/src/exchanges/broker.ts). - An id with characters an exchange would refuse (anything but letters, digits,
-and_, up to 32 characters) is left out, and the Broker ids are valid check on the Status page says so. - A change applies to the next order: the cached exchange connections are rebuilt.
- The exchange pays any rebate to you directly. The server cannot see it, so the console's Revenue page stays empty rather than showing an estimate.
Broker and partner programs need an application and approval by each exchange, and their terms differ. Some forbid promising cashback or rebates to your users. Check the terms before you advertise anything.
03Plans
- Switch the console to SaaS (Tenancy). Plans apply only in SaaS mode.
- Name the plans and write the price text under Plans & limits, for example the amount and period you charge. It is text only.
- Set the limits of each plan: exchange accounts, bots, active Smart Trades, alerts, copy links, AI requests per hour (Plans & limits).
- Sell the plan your own way (your own payment page, an invoice), then open Users and change that user's plan to Pro.
Over a limit the app shows the server's message naming the limit (403 plan_limit).
04No promises
KESTREL provides the mechanisms above. What an operator earns depends on their users, their prices, the exchanges' programs and costs; nothing in this documentation is a forecast or a promise. Trading results of users are never promised either: backtests are simulated and presets carry no performance figures.