Skip to main content
Configuration is validated on construction, so mistakes surface with a message naming the field — not at 3am against a live book.

Top level

Market data

depth is how many levels are emitted to you. The book routing walks keeps every level from every venue, so a large order is allocated against all available liquidity rather than a truncated view of it.

Credentials

From the environment, with the venue id upper-cased:
Or pass them directly:
Market data needs no credentials on most venues. A few authenticate their book feed too — those report Offline with that reason until you supply keys.

Pooling equivalent pairs

BTC/USD, BTC/USDC and BTC/USDT are different instruments but often interchangeable. Group them and their liquidity pools into one book:
Routing to BTC can then send BTC/USD on one venue and BTC/USDT on another — each allocation carries the instrument it will actually trade.
Grouping assumes those quote currencies are interchangeable at par. Stating the group explicitly is what keeps that assumption visible instead of buried.

Bucketing

Exactly one mode per book. depth is the default; naming a book under size_buckets or amount_buckets switches it to VWAP mode. Naming it under both is a configuration error.