Разработка Telegram-бота для свапов

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка Telegram-бота для свапов
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1170
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    873
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1092
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    830

Разработка 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 взаимодействие

Для каждого свапа бот:

  1. Запрашивает котировку у агрегатора
  2. Показывает пользователю: 100 USDC → 0.0412 ETH (~$102.3), slippage 0.5%, gas ~$0.8
  3. Ждёт подтверждения (кнопки Подтвердить / Отмена)
  4. Строит транзакцию, подписывает, отправляет
  5. Отслеживает статус через watchTransactionReceipt в viem
  6. Отправляет уведомление с хэшем и ссылкой на 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 недель. Стоимость зависит от модели безопасности и количества интегрируемых протоколов.