Skip to content

Быстрый старт

От нуля до первого события — за несколько минут.

~5 МИНУТFREE-ПЛАНБЕЗ ПЛАТЕЖНЫХ ДАННЫХ

Нужен Node.js с поддержкой WebSocket или Python 3.10+ с пакетом websockets. Браузерные WebSocket подходят для экспериментов, но продакшен-ключи должны оставаться на сервере.

1. Создайте API-ключ

  1. Войдите на tessium.dev.
  2. Откройте дашборд.
  3. Создайте ключ. На бесплатном плане платёжные данные не нужны.

2. Подключитесь

Откройте WebSocket к эндпоинту стрима и передайте ключ как query-параметр:

wss://api.tessium.dev/stream?key=YOUR_API_KEY

3. Подпишитесь

После открытия сокета отправьте JSON-фрейм подписки. Этот пример отслеживает каждый новый токен на pump.fun:

Для примера на Python установите единственную зависимость:

bash
pip install websockets
ts
const ENDPOINT = 'wss://api.tessium.dev/stream?key=YOUR_API_KEY'
const ws = new WebSocket(ENDPOINT)

ws.onopen = () =>
  ws.send(
    JSON.stringify({
      op: 'subscribe',
      stream: 'launches',
      params: { platforms: ['pumpfun'] },
      id: 1,
    }),
  )

ws.onmessage = (e: MessageEvent) => {
  const message = JSON.parse(e.data as string)
  if (message.op === 'ack') console.log('subscribed:', message.sub)
  if (message.op === 'event') console.log(message.data)
}
python
import asyncio, json, websockets

ENDPOINT = "wss://api.tessium.dev/stream?key=YOUR_API_KEY"
SUB = {
    "op": "subscribe",
    "stream": "launches",
    "params": {"platforms": ["pumpfun"]},
    "id": 1,
}

async def main():
    async with websockets.connect(ENDPOINT) as ws:
        await ws.send(json.dumps(SUB))
        async for message in ws:
            frame = json.loads(message)
            if frame["op"] == "ack":
                print("subscribed:", frame["sub"])
            elif frame["op"] == "event":
                print(frame["data"])

asyncio.run(main())

4. Прочитайте событие

Сначала сервер подтверждает подписку:

json
{ "op": "ack", "id": 1, "sub": "ln_1" }

Затем приходят события с "op": "event". Запуск выглядит так:

json
{
  "op": "event",
  "sub": "ln_1",
  "stream": "launches",
  "cursor": "436312304:15:0",
  "data": {
    "slot": 436312304,
    "signature": "2ypWH1eZ...",
    "blockTime": 1785482177,
    "protocol": "pumpfun",
    "mint": "3hz7...pump",
    "creator": "9GXm...",
    "bondingCurve": "79Pe...",
    "name": "Example Token",
    "symbol": "EXMP"
  }
}

Вы в эфире

ack подтверждает, что подписка открыта. Первое event подтверждает полный путь от Solana до вашего потребителя.

Вы подключены, как только пришёл ack. Сохраняйте cursor каждого события после обработки, чтобы восстановить поток после короткого разрыва.

Дальше

Realtime Solana data API