GoCryptoTrader
A Go trading engine for 22 exchanges that has never cut a release or a tag.
Last updated
What it is
A trading engine written in Go, published as source and run as a daemon you compile yourself. One
binary holds the exchange connections, an order manager, a portfolio tool and a scheduler; you
control it over gRPC — or the JSON-RPC proxy in front of it — using the bundled gctcli client.
Strategy logic goes in Tengo scripts through the gctscript subsystem, or in Go if you are
extending the engine itself.
It is not a library that a framework wraps. It is the framework, and the exchange connectors are its own rather than a connector library's, which is the unusual part: 22 exchanges implemented in this repository, maintained by this project, and dependent on nobody else's release schedule. That is a real advantage over the majority of this category and it is paid for in breadth — most frameworks advertise a venue list an order of magnitude longer because they are counting somebody else's adapters.
The licence is MIT, taken from the LICENSE file — "The MIT License (MIT), Copyright (c)
2014-2026 The GoCryptoTrader Developers". The repository lives in the thrasher-corp GitHub
organisation, which names itself Thrasher Corporation and gives an Australian location on its own
GitHub profile.
Liveness, in dates rather than adjectives, as of 19 September 2026: the last commit on master
was 18 September 2026, the repository was created in October 2014, it is not archived, and it has
no releases and no tags at all — the releases feed, the tags feed and the tags API each return
nothing. Open issues stand at 43 with 30 open pull requests beside them. go.mod declares Go
1.27.
Pricing
Free, MIT, and there is nothing adjacent for sale — no hosted runner, no paid strategy marketplace, no commercial licence, no token. Unusually for this category there is also no referral arrangement: the README carries no exchange referral links, no sponsor banners and no broker programme, which is worth noting because most of the free software here is funded by one or another of those. What it asks for instead is a Bitcoin donation to a single address printed at the foot of each package README.
Your costs are a machine to run it on and the exchange fees you would pay anyway. The engine holds your API keys — in an AES256-encrypted config file — and calls the venues directly.
Data & coverage
Twenty-two exchanges: Binance, Binance.US, Bitfinex, Bitflyer, Bithumb, Bitstamp, BTCMarkets, BTSE, Bybit, Coinbase, COINUT, Deribit, GateIO, Gemini, HitBTC, Huobi.Pro, Kraken, Kucoin, Lbank, Okx, Poloniex and Yobit. All have REST; nineteen also have websockets, with Bitflyer and Lbank marked "No" and Yobit "NA". Nothing in the table has FIX. The project states an aim of covering the top thirty exchanges by liquidity as ranked by CoinMarketCap.
Every venue is centralised. There is no DEX connector, no RPC client and no on-chain execution path.
The asset-type enumeration in the code is long — spot, margin, cross-margin, index, several flavours of futures, perpetual contracts and swaps, options and combos — but what the enumeration allows and what the connectors implement are different questions. Counting the exchange wrappers that actually reference each type: options appear in four (Bybit, Deribit, GateIO, OKX), futures or perpetual asset types in fourteen, and margin in five. Everything else is spot.
Market data is whatever the venue serves — tickers, order books, OHLCV candles and recent and historic trades — stored locally in Postgres or SQLite if you enable the database subsystem. There is no bundled history and no archive: the depth you get is the depth the exchange's API returns.
The portfolio tool tracks on-chain addresses as well as exchange balances, but narrowly: Ethereum and ERC-20 balances through Ethplorer, Ripple through XRPScan, and other coins through CryptoID, each requiring an API key you supply yourself. That is address balance lookup through third-party explorers, not a chain data layer.
Integrations
Control plane. A gRPC service with a JSON-RPC proxy in front of it, driven by gctcli. The
backtester can also run long-lived as its own gRPC server.
Notifications. Communication packages for Slack, SMSGlobal, Telegram and SMTP, fed by an event manager subsystem whose only real settings are the polling delay and a verbose flag. There is no generic webhook: a grep of the repository for the word returns nothing, so anything not on that list of four means writing a package.
Scripting. gctscript embeds Tengo (v2.17.0 in go.mod), with exchange bindings for enabled
exchanges and pairs, account information, order query, submit and cancel, ticker and order book.
Scripts can be auto-loaded at startup and terminated at runtime.
The backtester is a sub-application in the same repository rather than a separate product —
its own README calls it "part of the GoCryptoTrader codebase". It is event-driven, reads candles
from the API, a CSV file, the database or a live source, is configured through .strat files,
sizes orders through a portfolio manager with a slippage estimator, keeps a compliance snapshot of
every transaction, supports exchange-level funding and transfers between exchanges, and writes an
HTML report.
Build-time switches worth knowing about: -tags=sonic_on swaps in ByteDance's Sonic JSON
library, and -tags=udecimal_on changes the decimal implementation — the README documents that
the latter also changes behaviour, truncating division at 19 fractional digits where the default
rounds at 16, and rejecting fractional Pow exponents.
Limitations
The vendor's own production warning is the headline, and it appears twice. The repository README leads with "this bot is under development and is not ready for production"; the backtester's README says the application "is not considered production ready" and then goes further — "while an experimental feature, it is not recommended to ever use live trading and real orders". That is the maintainers' assessment of their own live path, and it is a stronger statement than anything an outside reviewer could make.
There has never been a release or a tag. Not a stale one — none, on a repository created in
2014. The README explains it: binaries will be published once the codebase reaches a stable
condition. In practice you build from master, and your reproducible build is a commit hash you
chose yourself. There is no changelog to read before upgrading and no supported version to report
a bug against.
The backtester does not model perpetual funding, and says so. Its planned-features table lists perpetual futures funding, margin borrowing and leverage as work not yet done, alongside live ticker and live order-book data. It will backtest futures asset types happily; it simply will not charge you the funding, which means an automated perp strategy tested here shows profit it would not have earned.
There is no dry-run mode. The order manager has no simulated-fill path, and sandbox routing is
wired into exactly two exchanges: the UseSandbox config flag is read by the Gemini wrapper and
the sandbox REST endpoint by the Coinbase wrapper, and by nothing else in exchanges/. Testing
anywhere else means real orders on a real venue or the backtester on historical candles.
Options are four exchanges and margin is five. The asset enumeration promises much more than the connectors deliver, and there is no single page that tells you which — you are reading the wrappers.
It is Go, and the strategy layer is Tengo. That rules out the Python ecosystem this category otherwise runs on: no pandas, no scikit-learn, no TA-Lib bindings, no notebook. If your research lives in Python, nothing you have written carries over.
Alternatives
Freqtrade is the nearest thing in this catalogue in role — a self-hosted bot you run against your own keys — and the opposite in posture: Python rather than Go, monthly tagged releases, and strategies that run unchanged across backtest, dry run and live. It reaches its exchanges through a connector library rather than its own adapters, which buys breadth and hands the maintenance of each venue to somebody else.
NautilusTrader is the option when the engine itself has to be fast and correct about order state, with the same write-once-run-live-or-backtest property.
If what you want is not a framework at all but the layer underneath one, CCXT is the connector library most of this category is built on. The rest of the trading bots and execution SDKs listing sets out the trade-off.
Specs
- Interfaces
- API, Tengo
- Export
- JSON, API
- Asset classes
- Spot, Perpetuals, Futures, Options
- Chains
- Ethereum
- Venues
- CEX, Derivatives
- KYC required
- No
- Platforms
- CLI, Library
- AI features
- None
- Capabilities
- Backtesting, Automation, Live trading, Portfolio tracking, Alerts, Wallet tracking
- Pricing verified
- Capabilities verified
- Coverage verified
Also worth comparing
- OctoBot — GPL-3.0 Python bot with a web interface for grid, DCA, basket and TradingView strategies.
- Passivbot — A contrarian perp market maker you configure in JSON and leave running for months.
- 3Commas — Hosted DCA, grid and signal bots over nine exchanges, with your keys on their servers.
- Bitsgap — Hosted grid, DCA and futures bots on seventeen venues, with no API and no webhooks.
- Cryptohopper — Hosted spot bots built in forms, one bot per subscription, with a marketplace attached.
- Gunbot — A closed-source bot you install once, licensed against an ERC-20 wallet you control.
On these shelves
Background
How this part of the industry works, rather than which product to pick.
- Who pays for your free trading bot — Free crypto bots and terminals are usually paid for by the venue. The five mechanisms, what each does to your order, and how to find them in ten minutes.
FAQ
Is GoCryptoTrader ready for production use?
Its own README says not — the line is "Please note that this bot is under development and is not ready for production!" and the backtester's README repeats it, adding that live trading with real orders is not recommended at all. Read that as the vendor's own risk assessment rather than as modesty.
Does GoCryptoTrader have releases or tags I can pin to?
No. On 19 September 2026 its releases feed, its tags feed and the GitHub tags API were all empty, and the README says binaries will be published once the codebase reaches a stable condition. Consumers build from master or pin a commit hash themselves.
Does the backtester handle perpetual funding and leverage?
No. Its own planned-features table lists perpetual futures funding, margin borrowing and leverage as work not yet done. A perp strategy backtested here is never charged funding, which is one of the two largest cash flows on a leveraged position.
How many exchanges does GoCryptoTrader support?
Twenty-two, all over REST, nineteen of them with websockets as well — Bitflyer and Lbank are marked as having none and Yobit as not applicable. No exchange in the table has FIX. They are all centralised venues; there is no DEX support.