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

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

Технічний розбір інтеграції TON у Telegram Mini Apps з досвіду The Open Squad. Архітектура, TonConnect, Jettons (USDT), Telegram Stars, ескроу-контракти, безпека.

TON Blockchain у 2026 — це не «крипта для фанатів Telegram», а інфраструктурний шар для всього платіжного стека месенджера. У The Open Squad ми інтегрували TON у кожен продукт: USDT-виплати в The Open Earn, ескроу-контракти в The Open Guarantor. Цей гайд — те, що ми зрозуміли по дорозі.

Чому TON для Telegram-продуктів

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

  • Stripe / PayPal — повільні, дорогі (3–5%), не працюють для користувачів у 50+ країнах, які ми обслуговуємо
  • Мульти-чейн крипто-гаманці — UX-кошмар: користувачі мусять знати мережі, адреси, газ
  • Внутрішній баланс без виведення — користувачі йому не довіряють

TON одночасно вирішує три проблеми:

  1. Низькі комісії — частки цента за транзакцію (проти $0.30+ у Stripe)
  2. Швидкість — фінальність за 5 секунд
  3. UX — TonConnect дозволяє підключити гаманець за два тапи, без копіювання адрес

Архітектура TON за дві хвилини

TON — шардований PoS-блокчейн. Нативна одиниця — TON. Над нею працюють:

  • Jettons — стандарт токенів (TON-аналог ERC-20). USDT на TON — це Jetton, випущений Tether
  • NFTs — стандарт унікальних токенів
  • 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-гаманець (окрема адреса від основного TON-гаманця). Ви слухаєте транзакції на Jetton-гаманці, а не на основному.

Найпростіший шлях: використати hosted TON Index API (Tonapi.io, TonCenter) із вебхуками на вхідні перекази.

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

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

На відміну від TON, Stars не можна вільно вивести — Telegram конвертує Stars у TON лише для верифікованих творців і з затримкою.

Коли використовувати Stars замість TON:

  • Платний контент (статті, курси, преміум-функції ботів)
  • Внутрішні покупки (стікери, теми)
  • Чайові та донати
  • App Store / Play Store комплаєнс (Apple і Google вимагають Stars для in-app цифрових покупок)

Коли краще TON напряму:

  • B2B-виплати
  • P2P-ескроу
  • Великі суми
  • Коли користувачам потрібне вільне виведення

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

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

  1. Покупець надсилає TON в ескроу-контракт
  2. Контракт тримає кошти до підтвердження
  3. Покупець підтверджує отримання → контракт платить продавцю
  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, потім mainnet.

Чекліст безпеки платежів

Що ми впровадили після першого інциденту:

  1. Перевіряйте кожну вхідну суму — ніколи не довіряйте value із транзакції без перевірки
  2. Захист від реоргів — чекайте 6+ блоків перед зарахуванням (≈30 секунд на TON)
  3. Поділ hot/cold-гаманців — тримайте на гарячому гаманці лише ~24 години виплат, решту — у холодному
  4. Hardware-гаманець для cold — Ledger або мультисиг
  5. Ліміти на виведення — обмежуйте N виведень за хвилину на акаунт
  6. Audit trail — кожен рух коштів логується в БД із реплікацією на S3 / Postgres-репліку

Витрати на операції

Для unit-економіки:

  • TON-транзакція — ~0.005 TON газу (≈$0.025 за курсом $5/TON)
  • Jetton-транзакція (USDT) — ~0.05 TON (≈$0.25)
  • Деплой смарт-контракту — разово ~0.1 TON

Якщо ви обробляєте 1 000 USDT-виведень на день — це ~$250/день на газ. Як скоротити:

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

Що далі

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

Якщо хочете побачити це в проді — подивіться The Open Earn (USDT-виплати) або The Open Guarantor (ескроу-контракти).