К основному содержанию
T TON Adoption
← Словарь
NODE/03 · Term

TONAPI

Публичный индексированный API для TON от tonapi.io. В отличие от raw Toncenter, отдаёт жетон-операции, NFT-историю и события в человекочитаемом формате — основной выбор для DApp-фронта и аналитики.

Синонимы: tonapi.io, ton api

TONAPI (tonapi.io) — публичный TON API с индексацией: поверх raw блокчейн-данных добавляет нормализованную семантику жетонов и NFT, поиск по событиям, готовую группировку транзакций в «операции».

Что отличает от Toncenter

Toncenter — это raw JSON-RPC поверх liteserver’ов: вы видите cell’ы, опкоды, низкоуровневую транзакционную структуру. TONAPI — index-слой сверху: вы видите «Алиса отправила Бобу 100 USDT, fee 0.02 TON». Для DApp UI и аналитики TONAPI обычно даёт меньше работы по парсингу.

Основные endpoint’ы

  • /v2/accounts/<address>/events — нормализованные операции аккаунта (TON-transfer, jetton-transfer, NFT-transfer и т.д.).
  • /v2/jettons/<master>/holders — топ держателей джеттона.
  • /v2/nfts/<collection>/items — NFT-коллекция с метаданными.
  • /v2/blockchain/... — raw-данные, если нужно.

API-key обязателен (бесплатный tier с лимитом), оформляется в личном кабинете на tonapi.io.

Тарифы и лимиты

TierRPSЦенаКогда
Free~1 RPS0прототип, личный pet-проект
Pro10-50 RPS$19-49/меспрод-DApp, аналитика
Enterpriseпо договоруот $500/месбиржи, кастодиальные сервисы

Ключ передаётся header’ом Authorization: Bearer <key>. Без ключа лимит более жёсткий и SLA нет.

Подписка на события

TONAPI предоставляет два real-time канала:

  • WebSocketwss://tonapi.io/v2/websocket для подписки на account-events. Минимальная задержка ~1-2 секунды от финальности.
  • SSE (Server-Sent Events)https://tonapi.io/v2/sse/accounts/<addr>/transactions для односторонних потоков, удобно для бот-нотификаций и backend-watcher’ов.

Пример SSE-подписки в Node:

import { EventSource } from 'eventsource';
const es = new EventSource(
  `https://tonapi.io/v2/sse/accounts/${addr}/transactions`,
  { headers: { Authorization: `Bearer ${KEY}` } },
);
es.onmessage = (e) => {
  const tx = JSON.parse(e.data);
  console.log('new tx', tx.hash, 'value', tx.value);
};

Эта схема используется в production-ботах вроде @CryptoBot и в notification-сервисах кошельков.

Когда TONAPI лучше Toncenter

  • Нужны jetton-операции в человекочитаемом виде (USDT-transfer, не raw cell).
  • Работа с NFT-коллекциями — TONAPI отдаёт metadata, owner, history одним запросом.
  • Поиск по операциям — например, «все swap’ы у этого адреса за неделю».
  • Готовая агрегация — баланс в фиате, сумма входящих за период.

Когда лучше Toncenter:

  • Нужен raw BoC / cell, чтобы парсить кастомный смарт-контракт.
  • Нужен runGetMethod на свежем стейте (TONAPI индексирует с лагом 1-2 секунды).
  • Нужно отправлять external messages (sendBoc) — TONAPI не делает broadcast, только индексация.

См. также