Разработка Telegram-бота для свапов
Пользователь открывает Telegram, отправляет /swap 100 USDC ETH — и через 15 секунд транзакция подтверждена на Arbitrum. Без MetaMask, без браузерного кошелька, без переключения между приложениями. Это не упрощение — для значительной части аудитории именно мессенджер является основным интерфейсом, и Telegram-боты для трейдинга уже обрабатывают миллиарды долларов в сутки.
Сложность здесь не в Telegram Bot API — он тривиален. Сложность в том, как безопасно управлять приватными ключами пользователей и минимизировать риски при работе с реальными DEX.
Ключевые проблемы архитектуры
Хранение приватных ключей
Это центральный вопрос, от которого зависит всё остальное. Три типичных подхода:
Custodial с шифрованием. Сервер хранит зашифрованные ключи, ключ шифрования — производная от PIN-кода пользователя (PBKDF2 или Argon2). Удобно, но сервер — honeypot. Одна утечка базы + брутфорс слабых PIN-кодов = потери пользователей.
Non-custodial через MPC. Приватный ключ никогда не существует целиком ни у кого. Threshold signature scheme (TSS) делит его между пользователем и сервером — для подписи нужны обе части. Это стандарт в production (Telegram Wallet использует MPC). Реализации: тZKP (tss-lib), Fireblocks MPC SDK. Значительно сложнее в разработке.
Локальный кошелёк через TON Connect или WalletConnect. Бот только отправляет данные транзакции, подпись происходит в кошельке пользователя. Безопаснее всего, но хуже UX — требует отдельного приложения.
Для большинства проектов выбор — custodial с Argon2 + HSM для production или MPC при наличии бюджета на разработку. Никогда не храним ключи plaintext, никогда не логируем.
Slippage и front-running
Бот работает через публичный RPC — транзакция попадает в mempool и видна всем. Sandwich attack на своп 10K+ USDC через Uniswap — стандартная ситуация. Решения:
- Flashbots Protect для Ethereum mainnet: транзакции идут напрямую к builders, минуя публичный mempool
- Private RPC на L2 (Arbitrum Sequencer RPC, Base private endpoint)
- Динамический slippage tolerance: для стейблкоин-пар ставим 0.1%, для алтов — 0.5-1%
Rate limiting и защита от дренажа
Если бот скомпрометирован или у пользователя украли Telegram-аккаунт, нужны механизмы ограничения ущерба:
- Дневной лимит на вывод (настраивается пользователем)
- Задержка 24 часа на вывод средств при первом добавлении нового адреса
- 2FA для транзакций выше порогового значения
- Мониторинг аномальных паттернов (5+ транзакций за минуту)
Как мы строим бота
Backend-стек
Node.js + TypeScript, библиотека telegraf для Telegram Bot API. Для взаимодействия с блокчейном — viem вместо ethers.js: лучшая типизация, меньше bundle size, нативная поддержка Multicall3.
Котировки свапов — через агрегаторы (1inch API, 0x API, Paraswap) с fallback на прямой Uniswap v3 Quoter. Агрегаторы дают лучший маршрут и обновляются быстрее, чем собственная реализация. Для production критична обработка случая, когда агрегатор API недоступен — fallback должен работать.
Сессии пользователей — Redis с TTL. Состояние ожидающих подтверждения транзакций — PostgreSQL.
On-chain взаимодействие
Для каждого свапа бот:
- Запрашивает котировку у агрегатора
- Показывает пользователю:
100 USDC → 0.0412 ETH (~$102.3), slippage 0.5%, gas ~$0.8 - Ждёт подтверждения (кнопки Подтвердить / Отмена)
- Строит транзакцию, подписывает, отправляет
- Отслеживает статус через
watchTransactionReceiptв viem - Отправляет уведомление с хэшем и ссылкой на explorer
Для чейнов, где поддерживается, используем eth_sendRawTransaction через Flashbots или аналог.
Поддерживаемые чейны
Типовая конфигурация для бота свапов: Ethereum (для крупных позиций), Arbitrum One (основной, баланс комиссии и ликвидности), Base (для mass-market, комиссии < $0.01), BSC (для аудитории с меньшим бюджетом). Добавление нового EVM-совместимого чейна — конфиг + RPC + список поддерживаемых DEX, 1-2 дня работы.
Процесс работы
Проектирование UX и безопасности (2-3 дня). Определяем модель хранения ключей, flow работы с кошельком (импорт мнемоники / генерация нового), список команд.
Backend и интеграция с DEX (1 неделя). Telegram-бот, сессии, котировки, подписание транзакций.
Тестирование на testnet (2-3 дня). Все сценарии: успешный своп, revert из-за slippage, недостаток газа, congestion сети.
Security review и деплой. Анализ хранения ключей, rate limiting, деплой в изолированном окружении (Docker, секреты через env + vault).
Ориентиры по срокам
Базовый бот с одним чейном и custodial-кошельком — 1.5-2 недели. Мультичейн с MPC и расширенным набором команд (лимитные ордера, DCA) — 4-6 недель. Стоимость зависит от модели безопасности и количества интегрируемых протоколов.







