← Блог
TON5 мин. чтенияАвтор:

TON Blockchain для разработчиков: Stars, USDT, TonConnect и платежи в Telegram

Технический разбор интеграции TON в Telegram Mini App из опыта The Open Squad. Архитектура, TonConnect, приём Jettons (USDT), Telegram Stars, эскроу-контракты, безопасность.

TON Blockchain в 2026 — это не «крипта Telegram-фанатов», а инфраструктурный слой для всей платежной экосистемы внутри мессенджера. В The Open Squad мы интегрировали TON во все продукты — от выплат пользователям The Open Earn (USDT) до эскроу-сделок в The Open Guarantor (смарт-контракты). Этот гайд — про то, что мы узнали по дороге.

Зачем TON для Telegram-проектов

Альтернативы:

  • Stripe / PayPal — медленные, дорогие комиссии (3–5%), не работают для пользователей из 50+ стран нашей аудитории
  • Криптокошельки разных сетей — UX мрак: пользователь должен знать сети, адреса, газ
  • Internal balance без вывода — пользователи не доверяют

TON решает три проблемы сразу:

  1. Низкие комиссии — десятые цента за транзакцию (vs $0.30+ у Stripe)
  2. Скорость — финализация за 5 секунд
  3. UX — TonConnect позволяет подключить кошелёк в 2 клика, без копирования адресов

Архитектура TON в двух минутах

TON — это шардированный PoS-блокчейн. Базовая единица — TON (нативная монета). Поверх работают:

  • Jettons — токены стандарта (аналог ERC-20 в Ethereum). USDT в TON — это Jetton от Tether
  • NFT — стандарт уникальных токенов
  • Workchains / Shardchains — шарды для масштабирования

Для разработчика это значит:

  • Один SDK (@ton/ton, @ton/core) работает и с TON, и с Jettons
  • Не нужно поддерживать несколько сетей
  • Транзакция — это сообщение от одного контракта другому (всё контракты, даже кошельки)

Подключение кошелька через TonConnect

TonConnect — open-source протокол для соединения dApp с кошельком пользователя. Поддерживается всеми крупными TON-кошельками: Tonkeeper, MyTonWallet, Tonhub.

В Mini App это выглядит так:

import { TonConnectUI } from "@tonconnect/ui";

const tonConnectUI = new TonConnectUI({
  manifestUrl: "https://yourapp.com/tonconnect-manifest.json",
});

// Открыть модалку выбора кошелька
await tonConnectUI.openModal();

// После подключения — кошелёк доступен:
const wallet = tonConnectUI.wallet;
console.log(wallet?.account.address);

Манифест (tonconnect-manifest.json) — статичный JSON с метаданными приложения. Кошельки его читают, чтобы показать иконку и название в подтверждении.

Приём платежей: TON и USDT

Сценарий 1: получить TON. Сгенерируйте депозитный адрес для пользователя (через подкошелёк HD-wallet). Слушайте новые транзакции через TON API:

from pytoniq import LiteClient

async def listen_deposits(address: str):
    async with LiteClient.from_mainnet_config() as client:
        txs = await client.get_transactions(address, count=10)
        for tx in txs:
            if tx.in_msg.value > 0:
                process_deposit(user_id, tx.in_msg.value)

Сценарий 2: получить USDT (Jetton). USDT — это Jetton-контракт. Каждый получатель имеет свой Jetton-кошелёк (отдельный адрес от основного). Слушать надо транзакции к Jetton-кошельку, не к основному.

Простой способ: использовать готовые TON Index API (Tonapi.io, TonCenter) с вебхуками на новые входящие.

Telegram Stars: цифровая валюта Telegram

Stars — виртуальная валюта Telegram (1 Star ≈ $0.013). Используется для покупки цифровых товаров: подписок, эмодзи, тем, премиум-фич ботов.

В отличие от TON, Stars нельзя выводить произвольно — Telegram конвертирует Stars в TON только для верифицированных авторов и с задержкой.

Когда использовать Stars вместо TON:

  • Платный контент (статьи, курсы, премиум-фичи бота)
  • In-app покупки (стикеры, темы)
  • Чаевые и донаты
  • Соответствие правилам App Store / Play Store (для встроенных покупок Apple/Google требуют Stars)

Когда лучше TON напрямую:

  • B2B-выплаты
  • P2P-эскроу
  • Крупные суммы
  • Когда пользователю нужен свободный вывод

Смарт-контракты: эскроу из опыта The Open Guarantor

The Open Guarantor — наш бот для безопасных P2P-сделок на TON. Логика проста:

  1. Покупатель шлёт TON в эскроу-контракт
  2. Контракт держит средства до подтверждения
  3. Покупатель подтверждает получение → контракт переводит TON продавцу
  4. При споре — арбитр (мы) принимает решение

Контракт пишется на FunC (низкоуровневый язык TON) или Tact (высокоуровневый). Мы пишем на Tact:

contract Escrow {
    buyer: Address;
    seller: Address;
    arbiter: Address;
    amount: Int;
    state: Int; // 0 = pending, 1 = released, 2 = refunded

    receive("release") {
        require(sender() == self.buyer, "only buyer");
        require(self.state == 0, "already settled");
        send(SendParameters{
            to: self.seller,
            value: self.amount,
            mode: SendPayGasSeparately
        });
        self.state = 1;
    }
    // ... refund, dispute logic
}

Деплой через blueprint (TON DevKit). Тестируем на testnet, потом мейннет.

Безопасность платежей: чек-лист

Что мы внедрили после первого инцидента:

  1. Валидация всех входящих сумм — никогда не доверяйте value из транзакции без проверки
  2. Reorg-protection — ждите 6+ блоков перед зачислением (на TON это ~30 секунд)
  3. Hot/cold wallet split — на горячем кошельке держим только сумму на 24 часа выплат, остальное в холодном
  4. Hardware-wallet для cold — Ledger или multisig
  5. Rate-limiting на вывод — не больше N выводов в минуту с одного аккаунта
  6. Audit trail — каждое движение средств в БД с дублированием в S3 / Postgres replica

Стоимость операций

Для калькуляции unit-экономики:

  • Транзакция TON0.005 TON газа ($0.025 при $5/TON)
  • Транзакция Jetton (USDT)0.05 TON ($0.25)
  • Деплой смарт-контракта — единоразово ~0.1 TON

Если у вас 1000 выводов USDT в день — это $250 газа. Чтобы снизить:

  • Батчинг выводов (несколько получателей в одной транзакции)
  • TON напрямую вместо USDT для микро-сумм

Что дальше

TON — самая практичная блокчейн-сеть для Telegram-проектов в 2026. Если ваш продукт работает с деньгами, TON-интеграция занимает 2–3 недели и сразу даёт качественный UX, который не получить через классические платёжные шлюзы.

Если интересно, как это всё работает в живом продукте — посмотрите The Open Earn (выводы в USDT) или The Open Guarantor (эскроу-контракты).