Auditsfreqtrade/freqtrade › Coinbase

Bot × exchange

Does freqtrade work with Coinbase?

The freqtrade README does not name Coinbase directly, but it names ccxt, the exchange library that ships a Coinbase adapter. Whether the bot's own code handles Coinbase's rules (symbols, order types, rate limits) is not something a README scan can tell. We did not run the bot against Coinbase: this page reports what the public code says and what the exchange itself publishes.

Coinbase facts

CoinGecko trust score
10 / 10 · rank 2
Country
United States
Established
2012
24h volume (BTC, normalized)
0
Puerto Rico residents
Not verified: the eligibility page returned an access error (HTTP 403) on the check date (source, 2026-09-17)
Derivatives
Regulated futures through Coinbase Financial Markets; global perpetuals since June 2026 (source, 2026-09-17)
Official API
Yes (Advanced Trade API); futures access for U.S. territories not confirmed (source, 2026-09-17)

Exchange data: CoinGecko public API and the exchange's own endpoints, 2026-09-17. More on the Coinbase page.

What the audit says about running it live

From the freqtrade audit (2026-09-17), the controls that matter most once a live API key is connected:

ControlVerdictEvidence
API key permissionsPartialdocs/exchanges.md, Gate.io section ('Spot Trade'/'Perpetual Futures' RW + 'Wallet' read-only + 'Account' read-only) and Bybit section ('Read-write, Contract-Orders, Contract-Positions... We do strongly recommend to limit all API keys to the IP you're going to use it from.') -- same URL as above
Orphaned stop-lossPartialdocs/stoploss.md ('stoploss_on_exchange': False default; note on bot recreating a manually-cancelled exchange stop) -- https://raw.githubusercontent.com/freqtrade/freqtrade/3774521e7028fa666770e7c7a8da323af5c4cefa/docs/stoploss.md
Websocket and data reconnectionPresentfreqtrade/exchange/common.py (retrier / retrier_async decorators, API_RETRY_COUNT=4, calculate_backoff); freqtrade/freqtradebot.py (daily self._schedule.every().day.at('00:02').do(self.exchange.ws_connection_reset)) -- both at commit 3774521e7028fa666770e7c7a8da323af5c4cefa
Order rejection handlingPresentfreqtrade/exchange/common.py, @retrier / @retrier_async decorators (API_RETRY_COUNT=4, calculate_backoff exponential delay, logs 'Retrying still for N times' / 'Giving up.') -- https://raw.githubusercontent.com/freqtrade/freqtrade/3774521e7028fa666770e7c7a8da323af5c4cefa/freqtrade/exchange/common.py
Position reconciliation with the exchangePartialfreqtrade/freqtradebot.py, FreqtradeBot.startup() calling self.startup_update_open_orders() with code comment 'Only update open orders on startup' -- https://raw.githubusercontent.com/freqtrade/freqtrade/3774521e7028fa666770e7c7a8da323af5c4cefa/freqtrade/freqtradebot.py

Before you connect a key