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.
Тарифы и лимиты
| Tier | RPS | Цена | Когда |
|---|---|---|---|
| Free | ~1 RPS | 0 | прототип, личный pet-проект |
| Pro | 10-50 RPS | $19-49/мес | прод-DApp, аналитика |
| Enterprise | по договору | от $500/мес | биржи, кастодиальные сервисы |
Ключ передаётся header’ом Authorization: Bearer <key>. Без ключа лимит более жёсткий и SLA нет.
Подписка на события
TONAPI предоставляет два real-time канала:
- WebSocket —
wss://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, только индексация.