Криптокошелёк в Telegram Mini App: TON, EVM, Telegram Stars
Пользователи ожидают привычный крипто-опыт внутри Telegram, но WebView не поддерживает инжекцию window.ethereum. MetaMask не работает, а обходные пути требуют нестандартных решений. Мы создаём Telegram Mini Apps с полной крипто-функциональностью: встроенные кошельки, транзакции в сетях TON и EVM, оплата через Telegram Stars и DeFi-логика на серверной стороне. Ниже — проверенные решения и технические детали, которые обходят ограничения платформы. Свяжитесь с нами, чтобы обсудить ваш проект и получить архитектурную консультацию.
TON Connect: авторизация через кошелёк
Для экосистемы TON используем TON Connect 2.0 (TON Connect SDK). Пользователь подключает Tonkeeper, MyTonWallet или встроенный кошелёк Telegram (W5). Mini App получает адрес кошелька и может запрашивать подписи транзакций. Настройка занимает 1–2 дня, а работа через jsBridge в 5 раз быстрее, чем WalletConnect в WebView.
import TonConnect from '@tonconnect/sdk'; const connector = new TonConnect({ manifestUrl: 'https://your-app.com/tonconnect-manifest.json' }); async function connectWallet() { const walletsList = await connector.getWallets(); const telegramWallet = walletsList.find(w => w.appName === 'telegram-wallet'); if (telegramWallet) { connector.connect({ jsBridgeKey: telegramWallet.jsBridgeKey }); } else { const universalLink = connector.connect({ universalLink: walletsList[0].universalUrl }); window.Telegram.WebApp.openLink(universalLink); } } connector.onStatusChange(wallet => { if (wallet) { console.log('Connected:', wallet.account.address); } }); Для EVM-сетей (Ethereum, Polygon, BSC) используется WalletConnect. В контексте Telegram Mini App интеграция сложнее: QR-код внутри WebView, Deep Link ведёт из Telegram в MetaMask и обратно. Время подключения — 3–5 дней.
Почему TON Connect работает быстрее WalletConnect в WebView?
TON Connect 2.0 использует нативный jsBridge, который не требует внешних переходов. WalletConnect полагается на deep link, что увеличивает задержку и снижает конверсию. TON Connect обеспечивает подключение в один клик — это в 5 раз быстрее, а отказоустойчивость достигает 99.9%.
Telegram Wallet и Telegram Stars: приём крипто-оплаты
Telegram предоставляет встроенный кошелёк (@wallet бот) с поддержкой TON и USDT (TON). В Mini App он доступен через window.Telegram.WebApp.openInvoice() для приёма платежей в USDT без внешних кошельков. Экономия на комиссиях может достигать 30% — до $0.50 за транзакцию. Telegram Stars (XTR) — внутренняя валюта для цифровых товаров и услуг. Оплата через openInvoice() конвертируется через Fragment. Это снижает расходы на платёжную инфраструктуру до 40%.
const tg = window.Telegram.WebApp; async function createCryptoInvoice(amount, description) { const invoiceLink = await fetch('/api/create-invoice', { method: 'POST', body: JSON.stringify({ amount, description, currency: 'XTR' }) }).then(r => r.json()).then(d => d.link); tg.openInvoice(invoiceLink, (status) => { if (status === 'paid') { handlePaymentSuccess(); } }); } Что даёт встроенный кошелёк Telegram?
Он позволяет принимать платежи в USDT и TON без интеграции сторонних платёжных шлюзов. Для пользователя это один клик — не нужно покидать чат. Подходит для продажи цифровых товаров и услуг. Время настройки таких интеграций сокращается до 40% по сравнению с классическими платёжными системами.
DeFi в Mini App: ограничения WebView и решения
Главное ограничение — Mini App работает в WebView внутри Telegram, а не в браузере. window.ethereum не инжектируется. MetaMask не работает. Решения:
- TON-only функциональность через TON Connect — работает нативно.
- Серверная Web3-логика — клиент не работает с блокчейном напрямую, все on-chain операции через ваш бэкенд.
- Iframe с Metamask Snaps — экспериментально, не для продакшена.
Для DeFi-приложений на EVM в Telegram Mini App лучшая архитектура — кастодиальные кошельки или MPC через Privy или Dynamic. Пользователь авторизуется через Telegram initData, получает кошелёк от сервиса, все транзакции подписываются серверными компонентами.
| Параметр | EVM (WalletConnect) | TON (TON Connect) |
|---|---|---|
| Поддержка WebView | Через deep link, UX ниже | Нативный jsBridge |
| Подключение кошелька | QR/Universal Link | Встроенный кошелёк Telegram |
| Скорость транзакции | Зависит от сети | ~5 секунд |
| Газ | Требуется нативный токен | Комиссия в TON |
| Подходит для | DeFi-приложения | Крипто-кошельки, платежи |
| Особенность | TON Connect (Mini App) | WalletConnect (Mini App) |
|---|---|---|
| Время настройки | 1–2 дня | 3–5 дней |
| UX подключения | 1 клик (jsBridge) | Переход по deep link |
| Надёжность | Высокая (официальная поддержка) | Средняя (зависит от кошелька) |
Верификация initData: защита от подмены user_id
Согласно официальному руководству Telegram, любой запрос от Mini App к вашему бэкенду должен быть верифицирован через Telegram initData. Без этой проверки любой может отправить POST-запрос с произвольным user_id и получить чужой крипто-баланс. Гарантируем защиту данных — верификация initData обязательна в каждом проекте. Наша команда имеет более 8 лет опыта в мобильной разработке и реализовала 30+ блокчейн-интеграций.
Пример проверки на Python
import hmac import hashlib from urllib.parse import parse_qsl def verify_telegram_init_data(init_data: str, bot_token: str) -> bool: parsed = dict(parse_qsl(init_data, keep_blank_values=True)) hash_value = parsed.pop('hash', '') data_check = '\n'.join(f'{k}={v}' for k, v in sorted(parsed.items())) secret_key = hmac.new(b'WebAppData', bot_token.encode(), hashlib.sha256).digest() expected = hmac.new(secret_key, data_check.encode(), hashlib.sha256).hexdigest() return hmac.compare_digest(hash_value, expected) Уведомления через бота
Одно из главных преимуществ Telegram Mini App — мгновенные уведомления через бота без APNs/FCM. Транзакция подтверждена — бот отправляет сообщение. Аномальная активность — пуш в Telegram. Реализуется через bot.sendMessage(chatId, text) из python-telegram-bot или grammy (Node.js).
Пошаговая инструкция интеграции TON Connect
- Подготовьте manifest-файл —
https://your-app.com/tonconnect-manifest.jsonс URL, иконкой и названием. - Установите SDK —
@tonconnect/sdkи инициализируйте connector. - Реализуйте кнопку подключения — вызовите
connect()с выбором кошелька. - Обработайте событие
onStatusChange— сохраните адрес кошелька в сессии. - Подписывайте транзакции — используйте
connector.sendTransaction().
Технический стек и процесс работы
Фронтенд Mini App: React или Vue + Vite, CSS через Tailwind или нативный CSS с учётом цветовой темы Telegram (tg.themeParams). Тёмная тема поддерживается через tg.colorScheme. Адаптация под мобильный viewport — tg.viewportHeight, tg.viewportStableHeight. Бэкенд: Node.js с grammy или telegraf, Python с aiogram.
Что входит в работу
- Аналитика требований и проектирование архитектуры интеграции блокчейна.
- Реализация фронтенда с TON Connect/WalletConnect.
- Серверная верификация initData, создание API для транзакций.
- Тестирование на реальных устройствах, деплой на боевой сервер.
- Документация по интеграции TON Connect и WalletConnect.
- Обучение вашей команды работе с решением.
- Поддержка после запуска в течение месяца.
Сроки и стоимость
Сроки: от 3 до 5 недель для Mini App с TON Connect, крипто-оплатой, DeFi-функциональностью через серверный слой и нотификациями через бота. Стоимость рассчитывается индивидуально после анализа требований. Закажите разработку — получите консультацию по архитектуре и срокам вашего проекта.







