Fetch Market Data
Use the indexer for trading-facing market data and chain modules for protocol metadata that is committed on-chain.
from dydx import Dydx
async with Dydx.testnet(public=True) as client:
markets = await client.indexer.data.get_markets()
btc = await client.indexer.data.get_market('BTC-USD')
book = await client.indexer.data.get_order_book('BTC-USD')
trades = await client.indexer.data.get_trades('BTC-USD', limit=10)
print(markets['markets'].keys(), btc['oraclePrice'], book['bids'][:1], trades['trades'][:1])
For historical candles, use the indexer candle endpoint:
from datetime import datetime, timezone
from dydx import Dydx
async with Dydx.testnet(public=True) as client:
candles = await client.indexer.data.get_candles(
'BTC-USD',
resolution='1HOUR',
from_iso=datetime(2026, 1, 1, tzinfo=timezone.utc),
limit=100,
)
print(candles['candles'][:3])
For chain-native market metadata, use client.chain: