Repository navigation
v0.4.0 — contract 4.0.0
[0.4.0] — 2026-10-14
Generated from contract 4.0.0. The contract had two MAJOR revisions since 0.3.0 (3.0.0 on
2026-10-13, 4.0.0 on 2026-10-14): 0.3.0 no longer matches the API — upgrade.
Changed (breaking, following the contract)
- Every method is named after the path of its route (contract 3.0.0):
client.oi.change
(wasoi.delta),client.options.put_call_ratio,client.buy_sell_ratio,
client.liquidations.big_small_ratio,client.eth.price_btc, Bitcoin on-chain under
client.btc.*(mvrv,nvt,active_addresses,revenue_per_difficulty),
client.capabilities(symbol). client.klines(symbol, timeframe)returns the latest CLOSED candle (one model); the list is
client.klines.history(...)andclient.klines.history.iter(...). Same for
client.options.iv.klines.client.buy_sell_ratio,client.trades.avg_sizeandclient.liquidations.big_small_ratio
requiretimeframeand return the latest closed bucket (contract 4.0.0); their snapshot fields
take a timeframe mapping (buy_sell_ratio={"5m": 12}).- Snapshot: a multi-timeframe field (
klines_1h,cvd_1h...) is typed as a LIST, never
Model | list[Model]; a field without a timeframe is the object of its route (Trueor1). client.indicators(..., limit=N)(wasresults=);valuesis a list of dated rows,
IndicatorRow(time, value)or the named outputs, most recent first;to_pandas()builds its
columns from them.globalis a Python keyword:client.global_()(wasclient.global_market()); the TypeScript
property isclient.global.- WebSocket:
ch.orderbook(symbol, market=...)(the channel isorderbook.*;ch.bookstays as
an alias), messages of kindorderbookcarryavg_mid_price. - Field names follow the contract:
*_atinstants,*_sdurations,*_countcounts,
stepin the envelope of a list,is_partialon the snapshot.
Added
- A warning when the API serves a newer MAJOR contract, or a newer MINOR one, than the SDK was
generated from (contract_drift).