Exchange Gateways
The platform integrates six external exchange adapters plus one internal paper-execution gateway, each behind its own stateless gateway module:
- Binance
- OKX
- Bybit
- Bitget
- Coinbase
- Kraken
- Paper (internal simulation/backtesting venue — no live funds)
Gateway pattern
Each live venue has its own gateway module (core/application/trading/*_exchange_gateway.py) behind a shared factory (vault_gateway_factory.py). This keeps two properties true regardless of how many venues are added:
- Credential isolation — per-provider credential scoping reduces cross-exchange blast radius; each gateway only ever sees the credentials for its own venue. This is module-level isolation within a shared backend process, not independent process/container isolation.
- Non-custodial by construction — the backend gateway is stateless with respect to credentials; signing happens in the desktop vault (see Security & Compliance). Adding a new exchange means adding a new stateless adapter, not extending a shared credential store.
Paper mode
Every account starts in paper mode by default (see Quickstart). The Paper gateway shares the identical decision/risk pipeline with live venues -- it is not a separate simplified code path. Venue-specific fill quality, latency, slippage, funding, and rejection/outage behavior remain simulated or approximated in paper mode, and are not yet independently verified against live execution on any venue.