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

# Venues

> 24 venues, one string each.

Add a venue by adding its id to `exchanges`. There is nothing to install, register or write.

```python theme={"dark"}
config = {
    "market_data": {"exchanges": ["binance", "okx", "bybit"], "symbols": ["BTC/USDT"]},
    "fees_bps": "fees.toml",
}
```

## Supported venues

Every venue below is verified against the live venue on a schedule: its instruments load, its book arrives, its prices are ordered and uncrossed, and its rounding never rounds an order *up*.

| Venue              | Spot | Perps | Margin short | Post-only |
| ------------------ | ---- | ----- | ------------ | --------- |
| `binance`          | Yes  | Yes   | —            | Yes       |
| `binanceusdm`      | —    | Yes   | —            | Yes       |
| `bingx`            | Yes  | Yes   | —            | Yes       |
| `bitfinex`         | Yes  | Yes   | —            | Yes       |
| `bitget`           | Yes  | Yes   | —            | Yes       |
| `bitmart`          | Yes  | Yes   | —            | Yes       |
| `bitstamp`         | Yes  | Yes   | —            | Yes       |
| `bullish`          | Yes  | Yes   | Yes          | Yes       |
| `bybit`            | Yes  | Yes   | —            | Yes       |
| `coinbaseexchange` | Yes  | —     | —            | Yes       |
| `cryptocom`        | Yes  | Yes   | Yes          | Yes       |
| `deribit`          | Yes  | Yes   | —            | Yes       |
| `gate`             | Yes  | Yes   | —            | Yes       |
| `gemini`           | Yes  | Yes   | —            | Yes       |
| `htx`              | Yes  | Yes   | —            | Yes       |
| `hyperliquid`      | Yes  | Yes   | —            | Yes       |
| `kraken`           | Yes  | —     | —            | Yes       |
| `krakenfutures`    | —    | Yes   | —            | Yes       |
| `kucoin`           | Yes  | Yes   | —            | Yes       |
| `okx`              | Yes  | Yes   | —            | Yes       |
| `phemex`           | Yes  | Yes   | —            | Yes       |
| `upbit`            | Yes  | —     | —            | Yes       |
| `whitebit`         | Yes  | Yes   | —            | Yes       |
| `woo`              | Yes  | Yes   | —            | Yes       |

<Note>
  **Margin short** is enabled only where a real borrow has been placed and confirmed. Elsewhere an order with `margin=True` is refused before it is sent, rather than going out as a naked sell the account cannot cover. **Post-only** behaves the same way — refused, never quietly downgraded. Ask us to enable either for a venue you need.
</Note>

## Checking a venue yourself

```bash theme={"dark"}
sory test-venue binance
```

```text theme={"dark"}
Conformance: binance BTC/USDT

  PASS  load_markets returns markets — 4536 markets
  PASS  BTC/USDT is listed
  PASS  BTC/USDT is active
  PASS  instrument limits available — tick=0.01 lot=1E-5 min_amount=1E-5
  PASS  rounding never increases an amount — 0.123456789 -> 0.12345
  PASS  amounts are in base units — 0.123456789 -> 0.12345
  PASS  watch_order_book delivers
  PASS  bids descend, asks ascend
  PASS  book is not crossed — bid 64961.57 / ask 64961.58

PASSED
```

Add `--symbol` for a different pair, or `--private` to include credentialed checks.

## Something missing?

<Card title="Request a venue" icon="mail" horizontal href="mailto:manu.de.cara@gmail.com">
  Most take under an hour — a venue needs describing, not building.
</Card>

<Warning>
  A venue that denominates order quantities in *contracts* rather than base units cannot be enabled without extra work, because its quantities do not mean the same thing as the rest of the book. SORY refuses to route to one rather than risk sizing an order orders of magnitude wrong.
</Warning>
