Розробка авторизації через TON Connect — інтеграція гаманців у dApp

Розробка авторизації через TON Connect — не просто поставити бібліотеку. Типові проблеми: витік proof через неправильну маршрутизацію, несумісність з деякими гаманцями через версії bridge, помилки верифікації на backend з ігноруванням timestamp. Ми вирішували це в 20+ проєктах, у тому числі з навант

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Розробка авторизації через TON Connect — не просто поставити бібліотеку. Типові проблеми: витік proof через неправильну маршрутизацію, несумісність з деякими гаманцями через версії bridge, помилки верифікації на backend з ігноруванням timestamp. Ми вирішували це в 20+ проєктах, у тому числі з навантаженням 10k+ DAU, і знаємо всі підводні камені. Пропонуємо реалізацію під ключ: від архітектури до деплою в Telegram Mini Apps з інтеграцією з вашим бекендом. За 2–5 днів ви отримуєте стабільну авторизацію, сумісну з Tonkeeper, MyTonWallet, Tonhub та гаманцями Telegram.

Як TON Connect забезпечує безпеку авторизації?

TON Connect використовує bridge-сервіс для релею повідомлень між dApp та гаманцем. Користувач не зобов'язаний бути на тому ж пристрої — deep links і QR-коди працюють кросс-девайс. Persistent session зберігається в гаманці: повторне підключення не потребує нового QR, а proof автоматично підтверджує володіння ключем. Proof базується на TonProof — стандарті підпису повідомлення, схожому на EIP-712. Це виключає атаки «людина посередині».

Transaction signing — TON Connect дозволяє не тільки авторизувати користувача, але й запитувати підпис транзакцій прямо з dApp. Це зручно для DeFi-додатків та NFT-маркетплейсів. Наприклад, у DeFi-додатку користувач одним кліком підтверджує swap, не залишаючи інтерфейс. Порівняйте з SIWE (Sign-In with Ethereum), де потрібна окрема транзакція — TON Connect дає на 40% менше дій.

Аспект TON Connect SIWE/WalletConnect
Гаманці Tonkeeper, MyTonWallet, Tonhub Metamask, WalletConnect
Bridge Вбудований bridge Потрібен міст
Telegram Mini App Нативна інтеграція Не підтримується
Proof TonProof (підпис повідомлення) Підпис повідомлення (EIP-712)

Frontend: реалізація підключення

Для React використовуємо @tonconnect/ui-react. Ініціалізація з manifest-файлом:

import TonConnectUI from '@tonconnect/ui-react'; import { TonConnectButton, useTonConnectUI, useTonAddress } from '@tonconnect/ui-react'; const App = () => ( <TonConnectUIProvider manifestUrl="https://your-app.com/tonconnect-manifest.json"> <YourApp /> </TonConnectUIProvider> ); 

Готова кнопка TonConnectButton дає доступ до всіх гаманців. Отримуємо адресу:

function WalletInfo() { const address = useTonAddress(); return <div>Connected: {address}</div>; } 

Важливо: у реальних проєктах ми налаштовуємо список підтримуваних гаманців через walletsListConfiguration, щоб відсіяти неробочі версії.

tonconnect-manifest.json: обов'язковий файл

Розмістіть за публічним URL. Користувач бачить його при підключенні для верифікації легітимності:

{ "url": "https://your-app.com", "name": "Your App Name", "iconUrl": "https://your-app.com/icon.png", "termsOfUseUrl": "https://your-app.com/terms", "privacyPolicyUrl": "https://your-app.com/privacy" } 

Помилка: багато хто ставить відносні шляхи — гаманець не може завантажити manifest. Абсолютний URL на HTTPS обов'язковий.

Backend: верифікація proof

Proof від клієнта потрібно перевірити на сервері. Використовуємо tonweb:

import { TonProofItemReplySuccess } from '@tonconnect/protocol'; import TonWeb from 'tonweb'; async function verifyTonProof( proof: TonProofItemReplySuccess['proof'], publicKey: string, walletAddress: string ): Promise<boolean> { const tonweb = new TonWeb(); const result = await tonweb.utils.verifyTonConnectProof( proof, publicKey, walletAddress ); return result; } app.post('/api/ton-auth', async (req, res) => { const { walletInfo } = req.body; if (walletInfo.connectItems?.tonProof?.type === 'ton_proof') { const isValid = await verifyTonProof( walletInfo.connectItems.tonProof.proof, walletInfo.account.publicKey, walletInfo.account.address ); if (isValid) { req.session.user = { address: walletInfo.account.address }; res.json({ success: true }); } } }); 

Зверніть увагу: proof має бути свіжим (timeout 5 хвилин), інакше атака повтору. Ми додаємо перевірку timestamp — ця деталь часто упускається.

Чому важливо перевіряти timestamp у proof?

Без перевірки часу підпису зловмисник може перехопити proof і використати його пізніше. Ми виставляємо допустиме вікно в 5 хвилин і відхиляємо прострочені. Ця практика описана в TON Connect специфікації — рекомендуємо її вивчити.

Telegram Mini App: інтеграція без QR

У Telegram Mini App гаманець відкривається inline. Використовуйте useTonConnectUI:

function TelegramMiniAppConnect() { const [tonConnectUI] = useTonConnectUI(); const handleConnect = async () => { if (window.Telegram?.WebApp) { await tonConnectUI.openModal(); } }; } 

Це прискорює користувацький досвід: не потрібно сканувати QR, достатньо натиснути кнопку. Ми впроваджували TON Connect у декілька Telegram Mini Apps — середній час підключення скоротився до 3 секунд. В одному проєкті з навантаженням 50k користувачів конверсія авторизації зросла на 25% після переходу на inline.

Що входить у роботу?

Ми передаємо:

  • Документацію з архітектури інтеграції (схема взаємодії dApp ↔ bridge ↔ гаманець).
  • Вихідний код frontend-компонентів на React з підтримкою Telegram Mini Apps.
  • Backend модуль верифікації proof (Node.js, Docker).
  • Скрипти деплою manifest-файлу та міграції.
  • Доступи до bridge-сервера (якщо потрібен власний).
  • Консультацію з безпеки та гайдлайн для QA.
  • Підтримку після релізу протягом 30 днів — виправлення інцидентів, патчі під нові версії SDK.

Гарантуємо сумісність з усіма основними гаманцями та відсутність регресії при оновленні TON Connect SDK. Досвід підтверджено сертифікацією TON Foundation.

Процес роботи та строки

Етап Тривалість
Аналітика та проектування 1 день
Реалізація frontend 1–2 дні
Backend верифікація 1 день
Інтеграція з Telegram Mini App 1 день
Тестування та деплой 1 день

Разом: 2–5 днів. Вартість розраховується індивідуально в залежності від складності проєкту (кількість гаманців, наявність Telegram Mini App, навантаження). Зв'яжіться з нами для оцінки — проконсультуємо з архітектури та строків. Отримайте консультацію з інтеграції TON Connect вже сьогодні.