Buyer's guide ยท Kestrel
Crypto trading bot platform source code: Flutter app, Node.js server, operator console
KESTREL is complete source code for running your own crypto trading bot service. Users connect their own exchange accounts with trade-only API keys (Binance, OKX, Bybit, Bitget); a Node.js and TypeScript server runs Smart Trades and bots around the clock, and a Flutter app for iOS, Android, web and macOS controls them. You run the server and the operator console. It is software, not financial advice, and it promises no result.
What you get
The full source code
The Flutter app (iOS 15+, Android 7+, macOS 12+, web), the Node.js and TypeScript server, the operator console, a Docker install with one-command installer, update and backup scripts, an .env.example and HTML documentation.
Six bot types
DCA, Grid (long, short, neutral, trailing, infinity), Trailing and buy-the-dip, Rebalance, Signal and Indicator bots, with bot presets that are parameters only and a no-code indicator rule builder (RSI, EMA/SMA, MACD, Bollinger, VWAP, AND/OR).
Smart Trade
Up to 5 entries and up to 10 exit targets (TP), trailing TP and stop-loss, breakeven after a TP, stop-loss steps, a timeout and risk-based sizing, managed on the server so it keeps running with the app closed.
Trading terminal
Candle chart with indicators, order book, trades and best price across exchanges, market, limit and stop orders, leverage, margin mode, plus TWAP and scaled (ladder) orders.
Signals and copy trading
A signal webhook per bot with a secret (TradingView alerts), a chat-channel signal parser that requires proven channel ownership, and account-to-account copy trading with sizing rules.
Backtest, scanner and journal
A backtest on historical candles, labelled simulated. A scanner for funding rates and cross-exchange spreads. A trade journal with analytics and CSV export, including Koinly and CoinTracking formats.
Safety controls
A kill switch, close-all per exchange or global, a risk guard (daily loss, maximum drawdown) and a bot watchdog that reports stalled bots and failing keys.
Optional AI assistant
Uses your own Anthropic, OpenAI-compatible or local Ollama model to draft a Smart Trade or bot. Drafts are validated and never executed by the assistant.
How you run it as an operator
Operator console
Brand name, logo, accent, tagline, legal links, disclaimer, announcement and maintenance mode, user registration, feature switches and module hiding, plans and limits, exchange broker ids, AI, integrations with tests, users, status and an audit log. The first owner is created with a one-time setup code printed in the server log.
White label
Brand settings reach the apps from the server's config endpoint, cached and refreshed every minute.
Tenancy and plans
Provider accounts for copy trading use the SaaS tenancy mode. Plan prices are text the app shows: the operator assigns plans in the console and collects payment in their own way.
Exchange broker ids
You can enter your own broker ids. Whether an exchange pays any rebate is decided by that exchange's program and approval, which you apply for separately.
What it needs to run
- A VPS with a fixed public IP for exchange IP allow-lists, a domain and HTTPS (the Docker install uses Caddy with automatic certificates); Docker and Docker Compose, or a plain Node.js host
- Node.js 22.9 or newer and pnpm 10; SQLite for one box or PostgreSQL
- A KESTREL_MASTER_KEY (32 random bytes). Keys are stored encrypted on your server, and losing this master key makes stored API keys unreadable
- An ADMIN_SECRET_KEY for the console
- Flutter 3.41 and Dart 3.11.1 or newer to build the apps; Apple Developer and Google Play accounts to publish them
- Optional: a Firebase project for push (push is off without it), SMTP for email, a chat-bot token for signals and notifications, an LLM key or local Ollama for the assistant
- Your users bring exchange accounts and trade-only API keys; exchange trading fees and futures funding are paid by each user on their own account
What it does not do
- It is not custodial in the sense of holding funds, but it does hold users' exchange API keys, encrypted with AES-256-GCM on your server. Keys with withdrawal permission are refused, and on Binance so are keys with internal transfer. You are responsible for running that server securely.
- The automated checks place no order on a live exchange. Paper and testnet or demo accounts exist for testing. Run your own tests on your own accounts before you let users trade.
- Trading can lose money. Backtests are simulated on past candles, and presets carry no performance claims. No result is promised.
- There is no payment gateway or subscription billing. Exchange broker or partner programs need separate approval from each exchange.
- There is no hosted KESTREL server and no live operator console demo; the public demo is the app on bundled sample data.
- Terms of service, a privacy policy, a risk disclaimer and a legal or regulatory review for running a trading service in your jurisdiction are not included.
- The app ships in English and Slovak only. Hosting, domain, exchange accounts and trading capital are not included.
Questions
Does KESTREL hold my users' funds?
No. Funds stay on the user's own exchange account. The server stores the user's trade-only API key, encrypted, and refuses keys that can withdraw.
Which exchanges and markets does it support?
Binance, OKX, Bybit and Bitget, spot and futures, through ccxt, with live, testnet and paper modes. Hedge-mode futures accounts are refused where the exchange lets the server read the mode.
What does the AI assistant do?
It turns plain text into a Smart Trade or bot draft and explains results, using your own model key. It never places an order; drafts are validated and the user confirms.
How is it installed?
With the included Docker installer, which sets up the server, optional PostgreSQL and the web app behind Caddy with HTTPS. The installer was run on Ubuntu 24.04 in CI with both SQLite and PostgreSQL. A plain Node.js host also works.
Can I see it before buying?
The demo is the Flutter web app on bundled sample data with a Sample data label; no order reaches an exchange. The operator console is not in the public demo because it needs a server; its screens are in the documentation.
How much does Kestrel cost, and what does the licence allow?
$299, one payment, no subscription. One licence, no tiers: any number of projects and clients, a paid SaaS, every line changed. The only limit is reselling or publishing the source code itself. The services you connect bill you directly. See the licence.
Is setup included?
Yes. We install Kestrel for you and put in your logo, colours and texts. Bigger changes or new features get a fixed price before we start.
What if it does not work?
Write to us within 14 days. We fix it, usually the same day. If we cannot fix it within 7 days, you get your money back. See the refund policy.