Skip to main content

Tickers & Trades

Everything off the trade tape: last price, twenty-four-hour stats, recent prints, candles, and period stats. All of it is public — no party or account fields — and every price is a clean book price in cents. BigInt fields serialize as strings.

Trades appear here at execution time, when the cross happens, not at settlement.

Ticker

getTicker answers at three scopes. Name a leaf (assetConfigurationId + keyId) for keyTicker; name a product (assetConfigurationId) or an asset (assetId) for aggregateTicker, a cross-key rollup.

query {
getTicker(input: {
assetConfigurationId: "8befa764-f7e3-422a-8a4a-c64bbd08a7f2"
keyId: "4a9a2cca-c05f-5474-9979-428dc6f41107"
}) {
keyTicker { lastPriceCents lastTradeAt volume24h high24hCents low24hCents tradeCount24h }
aggregateTicker { floorPriceCents topSale24hCents volume24h tradeCount24h keys { keyId lastPriceCents volume24h } }
error { message }
}
}
{
"keyTicker": {
"lastPriceCents": "504",
"lastTradeAt": "2026-09-12T21:47:51.999000Z",
"volume24h": 1,
"high24hCents": "504",
"low24hCents": "504",
"tradeCount24h": 1
},
"aggregateTicker": null
}

volume24h is units. Whichever scope you did not ask for comes back null.

Recent trades

getRecentTrades is the anonymized tape for a leaf, newest first: time, price, quantity, taker side.

query {
getRecentTrades(input: {
assetConfigurationId: "8befa764-f7e3-422a-8a4a-c64bbd08a7f2"
keyId: "4a9a2cca-c05f-5474-9979-428dc6f41107"
limit: 3
}) {
trades { executedAt priceCents quantity takerSide }
error { message }
}
}
{
"trades": [
{ "executedAt": "2026-09-12T21:47:51.999000Z", "priceCents": "504", "quantity": 1, "takerSide": "SELL" },
{ "executedAt": "2026-09-09T18:35:42.314000Z", "priceCents": "4390", "quantity": 5, "takerSide": "SELL" },
{ "executedAt": "2026-09-03T14:01:15.717000Z", "priceCents": "4243", "quantity": 3, "takerSide": "BUY" }
]
}

takerSide is the aggressor: SELL means a seller hit a resting bid. For the same feed live, with execution ids, subscribe to public:trades:<configId>:<keyId> — see Realtime Socket.

Candles

getCandles returns OHLCV + VWAP buckets for a leaf over a time range. Intervals: M1, M5, H1, D1. Pin marketId to candle one venue; omit it for the leaf across venues. Buckets with no trades are omitted.

query {
getCandles(input: {
assetConfigurationId: "8befa764-f7e3-422a-8a4a-c64bbd08a7f2"
keyId: "4a9a2cca-c05f-5474-9979-428dc6f41107"
interval: D1
fromTime: "2026-08-13T00:00:00Z"
toTime: "2026-09-13T00:00:00Z"
}) {
candles { bucket openCents highCents lowCents closeCents volume vwapCents trades }
error { message }
}
}
{
"candles": [
{ "bucket": "2026-09-09T00:00:00Z", "openCents": "4390", "highCents": "4390", "lowCents": "4390", "closeCents": "4390", "volume": 5, "vwapCents": 4390.0, "trades": 1 },
{ "bucket": "2026-09-12T00:00:00Z", "openCents": "504", "highCents": "504", "lowCents": "504", "closeCents": "504", "volume": 1, "vwapCents": 504.0, "trades": 1 }
]
}

Product market

getProductMarket is the composed read a product page needs — period stats off the tape, the live depth summary, and a daily series — in one call. periodDays defaults to thirty.

query {
getProductMarket(input: {
assetConfigurationId: "8befa764-f7e3-422a-8a4a-c64bbd08a7f2"
keyId: "4a9a2cca-c05f-5474-9979-428dc6f41107"
marketId: "642cc6f3-3e7e-4d5c-8cee-f0578f5106e1"
}) {
stats { lastPriceCents volumeCents unitVolume tradeCount vwapCents highCents lowCents priceChangeCents priceChangePercent lastTradeAt holderCount }
depth { topBidCents topAskCents midCents spreadCents bidUnits askUnits }
priceSeries { date volumeCents unitsSold tradeCount averageSalePriceCents }
error { message }
}
}
{
"stats": {
"lastPriceCents": "504", "volumeCents": "20199", "unitVolume": 6, "tradeCount": 4, "vwapCents": "3366",
"highCents": "4243", "lowCents": "504", "priceChangeCents": "-2926", "priceChangePercent": -85.31,
"lastTradeAt": "2026-09-12T21:47:51.999000Z", "holderCount": 8
},
"depth": { "topBidCents": "3960", "topAskCents": null, "midCents": null, "spreadCents": null, "bidUnits": 5, "askUnits": 0 },
"priceSeries": [
{ "date": "2026-09-03", "volumeCents": "12729", "unitsSold": 3, "tradeCount": 1, "averageSalePriceCents": "4243" },
{ "date": "2026-09-12", "volumeCents": "504", "unitsSold": 1, "tradeCount": 1, "averageSalePriceCents": "504" }
]
}

The same stats object pushes live on public:stats:<configId>:<keyId> after every print.