TON Connect: как устроен протокол

Поймёшь архитектуру TON Connect: dApp, кошелёк, bridge, сессия и что именно видит приложение без доступа к ключам.

Что такое TON Connect

TON Connect — стандарт протокола, который связывает dApp (сайт или Mini App) с кошельком пользователя по зашифрованной сессии. Приложение получает адрес, может запросить подпись и отправку транзакций — но никогда не получает приватный ключ.

Подключение ≠ перевод. Сначала устанавливается сессия, потом отдельные запросы на действия.


Участники протокола

text
┌─────────────┐     bridge (HTTP/SSE)      ┌─────────────┐
│    dApp     │ ←──────────────────────→  │   Wallet    │
│  (твой UI)  │   encrypted session       │ (Tonkeeper…)│
└─────────────┘                           └─────────────┘
        │                                         │
        │ 1. manifestUrl                          │ 3. подпись
        │ 2. connect / tx request                 │    ключом
        ▼                                         ▼
  tonconnect-manifest.json              ключи только в кошельке
  • dApp — фронтенд с @tonconnect/ui-react, @tonconnect/ui или @tonconnect/sdk
  • Wallet — приложение, которое хранит ключи и показывает подтверждения
  • Bridge — транспорт сообщений между ними (не кастодиал: не видит ключи в открытом виде)
  • Manifest — публичный JSON с именем, иконкой и URL приложения; кошелёк показывает его пользователю

Как это работает

connect — кошелёк подтверждает сессию; dApp получает account.address и метаданные кошелька.

sendTransaction — dApp отправляет запрос с messages (или items); кошелёк показывает детали; пользователь подтверждает или отклоняет.

disconnect — сессия сбрасывается; повторное действие потребует нового connect.

Ключи и seed не покидают кошелёк. dApp работает с адресом и ответами протокола (boc транзакции, ton_proof и т.д.).

Частые ошибки

Путаешь «подключил кошелёк» и «отправил транзакцию» → после connect баланс и контракты сами не меняются. Нужен отдельный sendTransaction.

Считаешь, что bridge «держит» ключи → bridge только передаёт зашифрованные сообщения. Подпись делает кошелёк на устройстве пользователя.

Игнорируешь манифест → без доступного tonconnect-manifest.json кошелёк не покажет нормальный connect UI (часто 404 / CORS).


Что дальше

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация