Skip to content

candles ​

OHLCV токена на интервалах от одной секунды до одной минуты, построенный из тех же сделок, что отдаёт token_trades.

Без истории

Свечи строятся с момента подписки. Истории и бэкфилла нет.

Subscribe ​

Требуется mint. Интервал и поведение live-обновлений — параметры, а не фильтры.

json
{
  "op": "subscribe",
  "stream": "candles",
  "params": {
    "mint": "8Wq…kR2p",
    "interval": "15s",
    "priceCurrency": "usd",
    "detail": "full",
    "updates": "live"
  },
  "id": 1
}

Параметры ​

ParamTypeDescription
mintstringОбязательно. Mint токена.
intervalstringОбязательно. 1s, 15s, 30s или 1m.
priceCurrencystringusd (по умолчанию) или sol; одна валюта на подписку.
updateslive / closedПо умолчанию live; closed — только закрытые бары.
detailbasic / fullУровень полезной нагрузки; по умолчанию basic.

Фильтры и все интервалы свечей доступны на всех планах, включая Free.

Event ​

json
{
  "op": "event",
  "sub": "cd_1",
  "stream": "candles",
  "cursor": "000330112270:000000:0000",
  "data": {
    "interval": "15s",
    "priceCurrency": "usd",
    "openTime": 1785482160,
    "open": "0.00001218",
    "high": "0.00001218",
    "low": "0.00001176",
    "close": "0.00001182",
    "volumeToken": "89760695.84",
    "volumeUsd": "1093.29",
    "trades": 37,
    "buys": 24,
    "sells": 13,
    "closed": true
  }
}

Свечи — агрегаты, поэтому в data нет общего транзакционного конверта.

Basic fields ​

FieldTypeNotes
intervalstringИнтервал подписки
priceCurrencyusd | solВалюта, выбранная подпиской
openTimenumberНачало бара в Unix-секундах
open, high, low, closestringOHLC в выбранной валюте
volumeTokenstringОбъём в токене
closedbooleantrue на финальном баре интервала

Full fields ​

FieldTypeNotes
volumeUsdstringЗаполнен при priceCurrency: "usd", иначе null
volumeSolstringЗаполнен при priceCurrency: "sol", иначе null
tradesnumberЧисло сделок
buysnumberЧисло покупок
sellsnumberЧисло продаж

С updates: live открытый бар эмитится раз в секунду. Бар 1s закрывается каждую секунду и не имеет отдельных live-обновлений. События эмитятся только для интервалов, в которых были сделки.

Когда бар закрывается ​

Бар закрывается первой сделкой следующего интервала — и в этот же момент уходит клиенту. Если торговля затихла и такой сделки нет, бар закрывает таймер вскоре после конца интервала.

Небольшая пауза на пути через таймер сделана намеренно. Метаданные блока могут дойти до нас чуть позже сделок, которые они описывают, и если закрывать бар ровно на границе интервала, опоздавшая сделка придёт к уже отправленному бару — а та же минута приедет дважды, двумя разными закрытыми барами. Короткое ожидание даёт гарантию: каждый бар уходит закрытым ровно один раз, со всеми своими сделками, и больше не переоткрывается.

На live-обновления это не влияет: пока бар формируется, вы получаете его каждую секунду, так что цена всегда актуальная. Сделка, пришедшая после закрытия своего бара, в него не попадает — это стоит учитывать, если вы сверяете объём свечей с token_trades.

Realtime Solana data API