Supported Exchanges
Sequence connects to three venue classes through dedicated edge servers deployed near each venue's infrastructure. Every class shares the same SDK surface: quote, buy, sell, cancel, amend, decrease, batch, stream, graph, deploy_algo. Per-venue execution differences surface through a mode field on results (native_atomic vs cancel_replace, auto_settled vs relayer_submitted, etc.) rather than forcing branching in user code.
Centralized exchanges (CEX spot + perps)
| Exchange | Region | CC | Instruments | Deploy units | Status |
|---|---|---|---|---|---|
| Binance | AP Northeast (Tokyo) | AP | Spot + USD-M futures | venue-edge-binance, venue-edge-binance-perp | Live |
| Coinbase | US East (Virginia) | US | Spot | venue-edge-coinbase | Live |
| Kraken | EU West (Ireland) | EU | Spot | venue-edge-kraken | Live |
| OKX | AP Northeast (Tokyo, colocated)* | AP | Spot + SWAP | venue-edge-okx, venue-edge-okx-perp | Live |
| Bybit | AP Northeast (Tokyo, colocated)* | AP | Spot + linear perps | venue-edge-bybit, venue-edge-bybit-perp | Live |
| Bitget | AP Northeast (Tokyo) | AP | Spot | venue-edge-bitget | Live |
| Crypto.com | AP Northeast (Tokyo) | AP | Spot | venue-edge-cryptocom | Live |
* OKX and Bybit edges currently colocate on the Binance Tokyo box rather than running in their venue's own region. ap-southeast-1 (Singapore, Bybit) and ap-east-1 (Hong Kong, OKX) are reserved CIDR blocks for future expansion when latency profiling justifies the move.
All CEX edges share a single binary (venue-edge-cex) selected at startup via VENUE=<name>. Spot and perp on the same exchange run as separate processes but share a single VenueId — they connect to different WebSocket hosts (e.g. stream.binance.com vs fstream.binance.com) but show up in the API as one venue, with the instrument_type field discriminating spot vs perp updates.
Adding a new CEX means implementing ~200-400 LOC against the CexVenue trait (WS URL, subscribe frame, parse, order format, sign) — zero changes to the kernel.
On-chain perps
| Exchange | Region | CC | Instruments | Deploy unit | Status |
|---|---|---|---|---|---|
| Hyperliquid | US East (Virginia) | US | Perps (USDC) | venue-edge-hyperliquid | Live |
Hyperliquid uses the same venue-edge-cex binary with a bespoke WS trading channel + L1 signing. Orders travel over the same uniform CexVenue + OrderTransport traits.
Prediction markets
| Exchange | Region | Authentication | Native Amend | Native Batch | Settlement | Status |
|---|---|---|---|---|---|---|
| Kalshi | EU West (Dublin) | RSA-PSS + SHA-256 | ✅ /portfolio/orders/{id}/amend at transport layer; graph SDK/API still reports CancelReplace | ✅ /portfolio/orders/batched (20 ops atomic) at transport layer; graph SDK/API still serial | Auto on-venue | Live |
| Polymarket | EU West (Dublin) | EIP-712 + HMAC-SHA256 L2 | ❌ Cancel+replace only | ✅ CLOB POST /orders batch (15 orders, best-effort per-order result; transport-supported) | On-chain CTF redemption | Live |
Both behind the same SDK verbs. The mode field on results (AmendMode::NativeAtomic vs CancelReplace, BatchMode::Serial vs NativeAtomic, RedeemMode::AutoSettled vs RelayerSubmitted) surfaces the real execution path so queue-sensitive strategies can branch. Graph-level SDK batching is still serial today even where the lower venue transport has native batch support. See Prediction Markets for the venue-specific detail.
Decentralized exchanges
Sequence supports on-chain execution across 6 networks and 11+ protocols.
EVM chains
| Network | Block Time | Protocols |
|---|---|---|
| Ethereum | ~12s | Uniswap V2/V3, Curve, Balancer V2, DODO V2, PancakeSwap V3 |
| Arbitrum | ~0.25s | Uniswap V3, Camelot, TraderJoe LB |
| Base | ~2s | Uniswap V3, Aerodrome, Maverick V2 |
| Optimism | ~2s | Uniswap V3, Velodrome |
| Polygon | ~2s | Uniswap V2, Balancer V2, Curve |
The DEX edge discovers pools automatically and routes through whichever protocol offers the best price for a pair.
Arbitrum has the fastest block times on EVM. Ethereum mainnet has the deepest liquidity but the highest gas costs.
Solana (native DMA)
Solana execution uses native Direct Market Access with local routing across Raydium CPMM/CLMM/V4 and Orca Whirlpool. All quoting and transaction building happens locally — no external aggregator dependency (Jupiter, etc.). Supports split routing across multiple pools, 2-hop paths through intermediate assets, and MEV-protected landing via Jito bundles.
Edge architecture (common across classes)
Every venue edge:
- Maintains a WebSocket connection for real-time L2 order book data (CEX, prediction markets) or RPC subscriptions (DEX).
- Uses the venue's native order channel — REST, WS trading, FIX, or on-chain transaction — for order submission.
- Deploys in the same region as the venue's matching engine (for CEX/prediction) or in a VPC close to the RPC provider (for DEX).
- Publishes BBO, L2 book, trades, and private fills over CC-LINK to the region's CC.
- Implements the same
CexVenue/OrderTransporttrait surface — so adding a venue never modifies the kernel.
All venue data is visible from any region — CCs mirror BBO + depth + balance reservations via the peer-link mesh (port 6001). An order submitted to the US CC can route to Binance in Tokyo if the SOR determines Tokyo has the best price after factoring peer-link RTT.
Venue-initiated discovery
Prediction-market edges (Kalshi, Polymarket) subscribe to lifecycle channels (market_lifecycle_v2, new_market). When the venue announces a new market, the edge enqueues it into drain_pending_new_symbols(); the framework runner picks it up within hundreds of ms and registers the PairSpec with CC. Users can quote and trade the fresh market within one tick of it going live on the exchange — no waiting for the 15-min polling cadence.
Symbol routing
Orders route only to venues that support the exact symbol requested. There are no automatic conversions between quote currencies:
| Symbol | Routes to |
|---|---|
BTC-USD | Kraken, Coinbase |
BTC-USDT | Binance, Bitget, Crypto.com, OKX, Bybit |
BTC-USDC | Bitget, Crypto.com, OKX, Bybit, Hyperliquid |
KXBTCZ-26DEC31-T99000 | Kalshi (YES leg) |
KXBTCZ-26DEC31-T99000:NO | Kalshi (NO leg) |
btc-updown-5m-1776537600 | Polymarket (YES token) |
btc-updown-5m-1776537600:no | Polymarket (NO token) |
Submitting a BTC-USD order when you only have Binance credentials will fail — Binance does not support USD pairs. Use GET /v1/pairs/{symbol}/venues to verify venue coverage before submitting.
Venue IDs (SDK)
When writing multi-venue algos, use these constants to target specific venues. Wire IDs match the CC's VenueId + 1 (slot 0 is reserved for "default/local").
| Constant | ID | Target |
|---|---|---|
VENUE_KRAKEN | 1 | Kraken |
VENUE_COINBASE | 2 | Coinbase |
VENUE_BINANCE | 3 | Binance (spot + perp share this id) |
VENUE_BITGET | 4 | Bitget |
VENUE_CRYPTOCOM | 5 | Crypto.com |
VENUE_BITMART | 6 | BitMart |
VENUE_DEX | 7 | Generic DEX (aggregated) |
VENUE_OKX | 8 | OKX (spot + perp share this id) |
VENUE_BYBIT | 9 | Bybit (spot + perp share this id) |
VENUE_UNKNOWN | 10 | Unknown |
VENUE_DEX_ETH | 11 | Ethereum DEX |
VENUE_DEX_ARB | 12 | Arbitrum DEX |
VENUE_DEX_BASE | 13 | Base DEX |
VENUE_DEX_OP | 14 | Optimism DEX |
VENUE_DEX_POLY | 15 | Polygon DEX |
VENUE_DEX_SOL | 16 | Solana DEX |
VENUE_HYPERLIQUID | 17 | Hyperliquid |
VENUE_POLYMARKET | 18 | Polymarket |
VENUE_KALSHI | 19 | Kalshi |
Spot and perp variants of the same exchange (Binance, OKX, Bybit) share a single VenueId because they're commercially one venue with the same credentials. Differentiate using the instrument_type field on market-data updates and PairSpecs — never branch on the venue id alone if you care about the spot/perp distinction.
Prediction-market venues (Kalshi, Polymarket) have dedicated venue IDs but typically you identify them by symbol format (Kalshi tickers, Polymarket slugs / token IDs) and let the CC route. Use is_dex(venue_id) and is_cex(venue_id) to classify.
Credential setup per class
| Class | api_key | api_secret | passphrase | extra_json |
|---|---|---|---|---|
| CEX (most) | API key | API secret | — | — |
| Coinbase, OKX, Crypto.com, Bitget | API key | API secret | Passphrase | — |
| Hyperliquid | — | — | — | signer_private_key, vault_address |
| Kalshi | Key ID (UUID) | RSA PEM private key | — | subaccount (optional) |
| Polymarket (recommended) | "" | "" | — | signer_private_key, optional proxy_address, builder |
| Polymarket (pre-derived L2) | L2 API key | L2 secret (b64) | L2 passphrase | signer_private_key still required |
| DEX (EVM) | Wallet address | — | — | signer_private_key or turnkey_* |
| Solana | Wallet pubkey | — | — | signer_private_key or turnkey_* |
For Polymarket, the recommended path is to leave the flat fields empty and let the edge derive L2 credentials from your EVM signer on first order (via /auth/derive-api-key). Only supply pre-derived L2 credentials if you've already generated them out-of-band — in that case signer_private_key is still required because orders are EIP-712 signed client-side.
All classes share the same POST /v1/credentials/{venue} endpoint — just the payload JSON differs per class. See each venue's page in the API reference for exact field names.
Checking venue status
curl https://api.sequencemkts.com/v1/edges \
-H "Authorization: Bearer $SEQ_API_KEY"Returns connected status, last_seen_ms timestamp, and the list of symbols each venue supports. Example response includes prediction-market edges alongside CEX/DEX, and shows perp variants as separate edges sharing a commercial venue id:
[
{"edge_id": "venue-edge-binance", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 14},
{"edge_id": "venue-edge-binance-perp", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 14},
{"edge_id": "venue-edge-bybit", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 12},
{"edge_id": "venue-edge-bybit-perp", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 12},
{"edge_id": "venue-edge-okx", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 11},
{"edge_id": "venue-edge-okx-perp", "region": "ap", "syms": 5, "bbo": 5, "age_ms": 11},
{"edge_id": "venue-edge-coinbase", "region": "na", "syms": 5, "bbo": 5, "age_ms": 14},
{"edge_id": "venue-edge-kraken", "region": "eu", "syms": 230, "bbo": 230, "age_ms": 38, "remote": true},
{"edge_id": "venue-edge-hyperliquid", "region": "na", "syms": 229, "bbo": 190, "age_ms": 31},
{"edge_id": "venue-edge-kalshi", "region": "eu", "syms": 11000, "bbo": 6896, "age_ms": 6, "remote": true},
{"edge_id": "venue-edge-polymarket", "region": "eu", "syms": 100, "bbo": 99, "age_ms": 30, "remote": true}
]