# GoCryptoTrader

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

*https://cryptomarkets.tools/tools/gocryptotrader · Crypto Trading Bots & Execution SDKs*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | GoCryptoTrader |
| Category | Crypto Trading Bots & Execution SDKs |
| Job | automation |
| Website | https://github.com/thrasher-corp/gocryptotrader |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | MIT |
| Self-hosted | true |
| KYC required | false |
| Tested hands-on | false |
| Last updated | 2026-09-19 |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | spot, perpetuals, futures, options |
| Chains | ethereum |
| Venues | cex, derivatives |
| Data latency | realtime |
| Platforms | cli, library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | true |
| Webhooks | false |
| Scripting | Tengo |
| MCP server | false |
| Export | json, api |

### Capabilities

Yes: backtesting, automation, live_trading, portfolio_tracking, alerts, wallet_tracking

No: charting, screening, paper_trading, exchange_import, tax_reporting, news, onchain_data, derivatives_analytics

*Verified: pricing 2026-09-19; capabilities 2026-09-19; coverage 2026-09-19.*

## 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](https://cryptomarkets.tools/tools/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](https://cryptomarkets.tools/tools/nautilus-trader) 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](https://cryptomarkets.tools/tools/ccxt) is
the connector library most of this category is built on. The rest of the
[trading bots and execution SDKs](https://cryptomarkets.tools/categories/trading-bots) listing sets out the trade-off.

## 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.

## Also worth comparing

- [OctoBot](https://cryptomarkets.tools/tools/octobot.md) — GPL-3.0 Python bot with a web interface for grid, DCA, basket and TradingView strategies.
- [Passivbot](https://cryptomarkets.tools/tools/passivbot.md) — A contrarian perp market maker you configure in JSON and leave running for months.
- [3Commas](https://cryptomarkets.tools/tools/3commas.md) — Hosted DCA, grid and signal bots over nine exchanges, with your keys on their servers.
- [Bitsgap](https://cryptomarkets.tools/tools/bitsgap.md) — Hosted grid, DCA and futures bots on seventeen venues, with no API and no webhooks.
- [Cryptohopper](https://cryptomarkets.tools/tools/cryptohopper.md) — Hosted spot bots built in forms, one bot per subscription, with a marketplace attached.
- [Gunbot](https://cryptomarkets.tools/tools/gunbot.md) — A closed-source bot you install once, licensed against an ERC-20 wallet you control.
