GoCryptoTrader

A Go trading engine for 22 exchanges that has never cut a release or a tag.

Last updated

From
Free
Latency
Realtime
Chains
Ethereum
Licence
MIT

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

  • OctoBotGPL-3.0 Python bot with a web interface for grid, DCA, basket and TradingView strategies.
  • PassivbotA contrarian perp market maker you configure in JSON and leave running for months.
  • 3CommasHosted DCA, grid and signal bots over nine exchanges, with your keys on their servers.
  • BitsgapHosted grid, DCA and futures bots on seventeen venues, with no API and no webhooks.
  • CryptohopperHosted spot bots built in forms, one bot per subscription, with a marketplace attached.
  • GunbotA 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 botFree 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.