> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clypt.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Exchanges

> Exchange support matrix with market types, fees, limits, and capabilities

## Exchange Matrix

ClyptQ supports the following cryptocurrency exchanges for data, backtesting, and live trading:

| Exchange     | Spot | Derivatives        | Market Type | Max Leverage | Quote Currencies | Live Trading |
| ------------ | ---- | ------------------ | ----------- | ------------ | ---------------- | ------------ |
| **Binance**  | Yes  | Yes (USDT-M)       | `futures`   | 125×         | USDT, USDC       | Yes          |
| **Bybit**    | Yes  | Yes (USDT Perp)    | `linear`    | 100×         | USDT, USDC       | Yes          |
| **Gateio**   | Yes  | Yes (USDT Futures) | `futures`   | 100×         | USDT             | Yes          |
| **Coinbase** | Yes  | Yes (USDC Perp)    | `perpetual` | 10× (CFTC)   | USDC             | Yes          |
| **Kraken**   | Yes  | Yes (USD Perp)     | `perpetual` | 50×          | USD              | Yes          |
| **OKX**      | Yes  | Yes (USDT-M Swap)  | `swap`      | 125×         | USDT, USDC       | Yes          |
| **Aster**    | Yes  | Yes (USDT Futures) | `futures`   | 20×          | USDT             | Yes          |

<Note>
  **Market type normalization:** `normalize_market_type("futures", "bybit")` auto-maps to `"linear"`. `normalize_market_type("futures", "coinbase")` and `normalize_market_type("futures", "kraken")` auto-map to `"perpetual"`. `normalize_market_type("futures", "okx")` auto-maps to `"swap"`. You can use `"futures"` in code and it will be normalized per exchange.
</Note>

## Fee Structures

### Default Rates (Non-VIP)

Fees are **auto-fetched from each exchange via CCXT**. These are default tier rates:

| Exchange     | Spot Maker | Spot Taker | Futures Maker | Futures Taker |
| ------------ | ---------- | ---------- | ------------- | ------------- |
| **Binance**  | 0.10%      | 0.10%      | 0.02%         | 0.04%         |
| **Bybit**    | 0.10%      | 0.10%      | 0.02%         | 0.055%        |
| **Gateio**   | 0.20%      | 0.20%      | 0.015%        | 0.05%         |
| **Coinbase** | 0.40%      | 0.60%      | 0.02%         | 0.06%         |
| **Kraken**   | 0.25%      | 0.40%      | 0.02%         | 0.05%         |
| **OKX**      | 0.08%      | 0.10%      | 0.02%         | 0.05%         |

### VIP Rate Override

If you have VIP status, override fees in your `AccountSpec`:

```python theme={null}
AccountSpec(
    exchange="binance",
    market_type="futures",
    base_currency="USDT",
    cost_model=CostModelSpec(
        maker_fee=0.0002,   # VIP 1: 0.02%
        taker_fee=0.0004,   # VIP 1: 0.04%
    ),
)
```

See [Cost Models](/backtesting/cost-models) for the full fee resolution priority chain.

## Margin & Liquidation

| Exchange     | Default MMR | Liquidation Fee | Threshold | Formula Style         |
| ------------ | ----------- | --------------- | --------- | --------------------- |
| **Binance**  | 1.3%        | 0.75%           | 100%      | Inverted (MMR/Equity) |
| **Bybit**    | 0.5%        | 0.6%            | 1.0       | Normal (Equity/MMR)   |
| **Gateio**   | 1.0%        | 0.5%            | 1.5       | Normal (conservative) |
| **Coinbase** | 6.67%       | 1.0%            | 1.0       | Normal (CFTC)         |
| **Kraken**   | 2.0%        | 1.5%            | 1.0       | Normal                |
| **OKX**      | 0.5%        | 0.5%            | 1.0       | Inverted (MMR/Equity) |
| **Aster**    | 2.5%        | 2.5%            | 1.0       | Normal (DEX)          |

See [Liquidation Logic](/backtesting/liquidation-logic) for detailed calculation formulas.

## Funding Rate Support

| Exchange     | Interval | Settlement Times (UTC) | Historical Data | Auto-Inject                   |
| ------------ | -------- | ---------------------- | --------------- | ----------------------------- |
| **Binance**  | 8h       | 00:00, 08:00, 16:00    | Full            | Yes                           |
| **Bybit**    | 8h       | 00:00, 08:00, 16:00    | Full            | Yes                           |
| **Gateio**   | 8h       | 00:00, 08:00, 16:00    | Full            | Yes                           |
| **Coinbase** | 1h       | Every hour             | Collected (1h)  | No (`has_funding_rate=False`) |
| **Kraken**   | 4h       | 6× per day             | Full            | Yes                           |
| **OKX**      | 8h       | 00:00, 08:00, 16:00    | Full            | Yes                           |
| **Aster**    | 8h       | 00:00, 08:00, 16:00    | Full            | Yes                           |

<Note>
  **Backtest funding accuracy**: Binance, Bybit, Gateio, OKX, and Aster have full 8h funding simulation. Kraken's 4h schedule is fully simulated at all 6 daily settlement times. Coinbase funding data is collected but not auto-injected in backtests (`has_funding_rate=False`). See [Funding Rate Simulation](/backtesting/funding-rates) for details.
</Note>

## Data Availability

### OHLCV Data

| Exchange     | Timeframes                       | Historical Depth | Storage |
| ------------ | -------------------------------- | ---------------- | ------- |
| **Binance**  | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |
| **Bybit**    | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |
| **Gateio**   | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |
| **Coinbase** | 1m, 5m, 15m, 30m, 1h, 2h, 6h, 1d | Partial          | Parquet |
| **Kraken**   | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |
| **OKX**      | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |
| **Aster**    | 1m, 5m, 15m, 30m, 1h, 4h, 1d     | Partial          | Parquet |

<Note>
  Historical depth varies by exchange and symbol. Data is available from listing date but coverage may be partial. Use `Helper.data_catalog()` to check available symbols, exchanges, and date ranges for your local data.
</Note>

### Live Data

| Exchange     | WebSocket | Reconnection |
| ------------ | --------- | ------------ |
| **Binance**  | Yes       | Automatic    |
| **Bybit**    | Yes       | Automatic    |
| **Gateio**   | Yes       | Automatic    |
| **Coinbase** | Yes       | Automatic    |
| **Kraken**   | Yes       | Automatic    |
| **OKX**      | Yes       | Automatic    |
| **Aster**    | Yes       | Automatic    |

## Settlement Currencies

| Exchange     | Spot                        | Futures    |
| ------------ | --------------------------- | ---------- |
| **Binance**  | USDT, FDUSD, USDC, BTC, ETH | USDT, USDC |
| **Bybit**    | USDT, USDC                  | USDT, USDC |
| **Gateio**   | USDT, BTC, ETH              | USDT       |
| **Coinbase** | USD, USDC                   | USDC       |
| **Kraken**   | USD, USDT                   | USD        |
| **OKX**      | USDT, USDC                  | USDT, USDC |
| **Aster**    | USDT                        | USDT       |

<Note>
  Multi-exchange strategies require matching symbol formats: `BTC/USDT` (Binance) vs `BTC/USD:USD` (Kraken). The `convert_symbol()` function handles automatic conversion.
</Note>

## Position Modes

| Exchange     | One-Way | Hedge Mode | Notes                           |
| ------------ | ------- | ---------- | ------------------------------- |
| **Binance**  | Yes     | Yes        | `position_side: "long"/"short"` |
| **Bybit**    | Yes     | Yes        |                                 |
| **Gateio**   | Yes     | Yes        |                                 |
| **OKX**      | Yes     | Yes        |                                 |
| **Coinbase** | Yes     | No         | `position_side: "both"` only    |
| **Kraken**   | Yes     | No         |                                 |
| **Aster**    | Yes     | No         | DEX                             |

## Configuration Examples

### Single Exchange

```python theme={null}
symbol_source_map = SymbolSourceMap({
    "binance:futures": ["BTC/USDT:USDT", "ETH/USDT:USDT"],
})

spec = TradingSpec(
    data=TradingDataSpec(
        symbol_source_map=symbol_source_map,
        observations=[OHLCVSpec(exchange="binance", market_type="futures", timeframe="1m")],
    ),
    execution=TradingExecutionSpec(
        accounts=[AccountSpec(exchange="binance", market_type="futures", base_currency="USDT", initial_cash=10_000)],
    ),
    mode="backtest",
)
```

### Multi-Exchange

```python theme={null}
symbol_source_map = SymbolSourceMap({
    "binance:futures": ["BTC/USDT:USDT", "ETH/USDT:USDT"],
    "gateio:futures": ["SOL/USDT:USDT", "DOGE/USDT:USDT"],
})

spec = TradingSpec(
    data=TradingDataSpec(
        symbol_source_map=symbol_source_map,
        observations=[
            OHLCVSpec(exchange=["binance", "gateio"], market_type="futures", timeframe="1m"),
        ],
    ),
    execution=TradingExecutionSpec(
        accounts=[
            AccountSpec(exchange="binance", market_type="futures", base_currency="USDT", initial_cash=30_000),
            AccountSpec(exchange="gateio", market_type="futures", base_currency="USDT", initial_cash=20_000),
        ],
    ),
    mode="backtest",
)
```

Each exchange is independently simulated with its own fees, margin rules, funding rates, and order validation.

## Related Pages

<CardGroup cols={2}>
  <Card title="Exchange Specifics" icon="building-columns" href="/backtesting/exchange-specifics">
    Detailed per-exchange backtesting parameters
  </Card>

  <Card title="Cost Models" icon="receipt" href="/backtesting/cost-models">
    Fee resolution, slippage, and VIP overrides
  </Card>
</CardGroup>
