Розробка Telegram-бота для керування крипто-портфелем під ключ

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Розробка Telegram-бота для керування крипто-портфелем під ключ
Середній
~1-2 тижні
Часті запитання

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

Етапи блокчейн-розробки

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

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

Розробка Telegram-бота для керування портфелем

Telegram — основна платформа крипто-спільноти, але трейдери втрачають до 2 годин на день на перемикання між біржами, DeFi-протоколами та гаманцями. У результаті упускаються угоди, а через затримки реакцій на ліквідації виникають збитки до 15% портфеля. Ми створюємо ботів, які об'єднують все в одному інтерфейсі: баланси, позиції, сповіщення та угоди. Замовте розробку під ключ — отримайте готове рішення з гарантією безпеки. Впровадження бота окупається за 2-3 місяці завдяки автоматизації рутинних операцій.

Чому варто довірити розробку нам?

Наш досвід — понад 5 років у Web3, 30+ реалізованих проєктів у DeFi та NFT. Використовуємо лише перевірені інструменти: Solidity 0.8.x для контрактів, Foundry для тестування, Slither для аналізу. Кожен бот проходить аудит безпеки. У середньому наші рішення обробляють на 40% більше запитів завдяки оптимізації пулу з'єднань.

Які завдання вирішує бот?

  • Моніторинг портфеля в реальному часі — затримка сповіщень менше 1 секунди, підтримка 10+ мереж (Ethereum, Polygon, Arbitrum, Solana).
  • Price alerts — налаштовувані сповіщення про досягнення цільових цін, ліквідації та зміни в пулах ліквідності.
  • Свопи через DEX-агрегатори — виконання угод через 1inch або Paraswap без виходу з Telegram.
  • Мультичейн підтримка — єдина панель для активів у різних блокчейнах.

Архітектура

Варіанти зберігання гаманця

Watch-only режим. Користувач додає публічну адресу, бот лише читає дані. Жодного ризику для коштів. Підходить для моніторингу.

Вбудований гаманець. Бот генерує key pair, encrypted private key зберігається в базі даних. Користувач встановлює пароль/PIN, який використовується для розшифровки при підписі. Найзручніший варіант для торгівлі, але потребує безпечного зберігання.

Connect існуючого гаманця. Через WalletConnect v2 користувач підключає MetaMask — транзакції підписуються в гаманці. Безпечно, але менш зручно (потрібен мобільний гаманець поруч).

Стек

Telegram Bot API (telegraf.js)
    ↓
Bot Server (Node.js + TypeScript)
    ├── Portfolio Service (баланси через Alchemy/DeBank API)
    ├── DeFi Service (позиції: AAVE, Compound, Uniswap)
    ├── Wallet Service (генерація, шифрування ключів)
    ├── Trading Service (свопи через 1inch/Paraswap API)
    └── Alert Service (price alerts, liquidation warnings)
         ↓
    PostgreSQL + Redis (sessions, cache)

Порівняння підходів до зберігання ключів

Підхід Безпека Зручність Швидкість угод
Watch-only Висока (немає ключів) Низька (лише читання) Не застосовно
Вбудований Середня (потребує шифрування) Висока Миттєва
WalletConnect Висока (підпис на пристрої) Середня (потрібен гаманець) Залежить від мережі

Як влаштована архітектура бота?

Бот побудований на мікросервісній моделі. Кожен сервіс відповідає за своє завдання: фетчинг балансів, аналіз DeFi-позицій, виконання свопів та моніторинг алертів. Асинхронна черга через Redis забезпечує затримку сповіщень менше 1 секунди. У середньому бот обробляє до 5000 запитів на хвилину — це в 3 рази швидше, ніж аналоги на Python.

Безпека зберігання ключів

Якщо бот зберігає private keys користувачів — це критична відповідальність:

  • Шифрування AES-256-GCM з ключем = KDF(user_pin + server_secret)
  • Server secret зберігається в AWS Secrets Manager (не в коді)
  • PIN ніколи не зберігається, лише перевіряється через спробу розшифровки
  • Автоматичний logout після N хвилин неактивності
  • Ліміти на транзакції (максимальна сума на добу)
  • Whitelist адрес-отримувачів

Рекомендації з безпеки: OpenZeppelin рекомендує emergency pause та обмеження експозиції для контрактів, що зберігають кошти користувачів.

Чому безпека ключів — головний пріоритет?

Фінансові втрати від злому можуть сягати 10-20% портфеля користувача. Ми застосовуємо формальну верифікацію критичних модулів та multi-sig для операцій адміністратора. Бот проходить зовнішній аудит коду перед деплоєм.

Як ми реалізуємо функціональність?

import { Telegraf, Context } from "telegraf";
import { message } from "telegraf/filters";

const bot = new Telegraf(process.env.BOT_TOKEN!);

bot.command("portfolio", async (ctx) => {
  const userId = ctx.from.id;
  const user = await userService.getUser(userId);
  
  if (!user?.watchAddress) {
    return ctx.reply("Додайте адресу гаманця: /add_wallet 0x...");
  }
  
  await ctx.reply("Завантажую портфоліо...");
  
  const portfolio = await portfolioService.getPortfolio(user.watchAddress);
  
  const message = formatPortfolioMessage(portfolio);
  await ctx.reply(message, { parse_mode: "HTML" });
});

function formatPortfolioMessage(portfolio: Portfolio): string {
  const totalUSD = portfolio.tokens.reduce((sum, t) => sum + t.valueUSD, 0);
  
  let msg = `<b>Портфоліо</b> — $${totalUSD.toFixed(2)}\n\n`;
  
  for (const token of portfolio.tokens.sort((a, b) => b.valueUSD - a.valueUSD)) {
    const pct = ((token.valueUSD / totalUSD) * 100).toFixed(1);
    msg += `${token.symbol}: ${token.balance.toFixed(4)} ($${token.valueUSD.toFixed(2)}, ${pct}%)\n`;
  }
  
  if (portfolio.defiPositions.length > 0) {
    msg += `\n<b>DeFi позиції:</b>\n`;
    for (const pos of portfolio.defiPositions) {
      msg += `${pos.protocol}: $${pos.valueUSD.toFixed(2)} (${pos.type})\n`;
    }
  }
  
  return msg;
}

Price alerts

interface PriceAlert {
  userId: number;
  token: string;
  targetPrice: number;
  direction: 'above' | 'below';
  isTriggered: boolean;
}

// Worker який перевіряє алерти кожну хвилину
async function checkAlerts() {
  const activeAlerts = await db.alerts.findActive();
  const tokens = [...new Set(activeAlerts.map(a => a.token))];
  const prices = await priceService.getPrices(tokens);
  
  for (const alert of activeAlerts) {
    const currentPrice = prices[alert.token];
    const triggered = 
      (alert.direction === 'above' && currentPrice >= alert.targetPrice) ||
      (alert.direction === 'below' && currentPrice <= alert.targetPrice);
    
    if (triggered) {
      await bot.telegram.sendMessage(
        alert.userId,
        `🔔 ${alert.token} досяг $${currentPrice.toFixed(2)} (ціль: $${alert.targetPrice})`
      );
      await db.alerts.markTriggered(alert.id);
    }
  }
}

Inline-клавіатури для навігації

Зручний UX для бота — inline кнопки замість команд:

bot.command("start", async (ctx) => {
  await ctx.reply("Головне меню", {
    reply_markup: {
      inline_keyboard: [
        [
          { text: "📊 Портфоліо", callback_data: "portfolio" },
          { text: "💰 Баланси", callback_data: "balances" },
        ],
        [
          { text: "🔄 Своп", callback_data: "swap" },
          { text: "🔔 Алерти", callback_data: "alerts" },
        ],
        [
          { text: "⚙️ Налаштування", callback_data: "settings" },
        ],
      ],
    },
  });
});

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

  1. Аналітика — вивчаємо ваші вимоги, інтеграції, обсяг користувачів.
  2. Проектування — архітектура, вибір стеку, схема бази даних.
  3. Реалізація — написання коду, інтеграція API, налаштування оповіщень.
  4. Тестування — unit-тести, інтеграційні тести, security review (включаючи формальну верифікацію для критичних модулів).
  5. Деплой — на ваш сервер або хмару (AWS, DigitalOcean).
  6. Підтримка — місяць безкоштовної підтримки після запуску.

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

  • Архітектурний документ з обґрунтуванням рішень.
  • Вихідний код у приватному репозиторії.
  • Документація з API та розгортання.
  • Інструкція з експлуатації для вашої команди.
  • Навчання адміністраторів (2-3 години).
  • Гарантія усунення критичних помилок протягом 30 днів.

Дані для портфоліо

Джерело Що дає
Alchemy Token API ERC-20 баланси за адресою
DeBank API DeFi позиції (AAVE, Compound, Uniswap LP)
CoinGecko API Ціни токенів
1inch API Котирування свопів
Etherscan API Історія транзакцій

Терміни та вартість

Базовий моніторинг-бот (watch-only, баланси, DeFi позиції, price alerts) — 2-3 тижні. Версія з вбудованим гаманцем та свопами — 4-6 тижнів з урахуванням security review. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проєкту.

Ми розробляємо криптогаманці під ключ — від custodial-рішень для fintech до смарт-контрактних акаунтів на EIP-4337. 5+ років на ринку блокчейн-розробки, 40+ реалізованих проектів. Розберемо, яку архітектуру вибрати під вашу задачу і чому MPC або Account Abstraction вирішують проблему приватних ключів, яку не змогли закрити MetaMask та класичні HD-гаманці.

Як обрати архітектуру гаманця?

Чому класичні гаманці небезпечні для бізнесу?

Seed-фраза у браузерному розширенні — єдиний спосіб відновити доступ. Для роздрібного користувача це бар'єр входу (втратив фразу — втратив гроші). Для корпоративного казначейства — несумісно з compliance (KYC/AML, рольова модель, мультипідпис). Будь-який витік одного ключа компрометує всі кошти. Ці ризики закладені в архітектуру, а не в поганий UX.

Ми усуваємо їх на рівні протоколу: MPC-гаманці (ключ ніколи не зібраний цілком), смарт-контрактні гаманці (логіка авторизації в коді), апаратні HSM для інституційного зберігання. Нижче — деталі.

Custodial vs Non-custodial: у чому реальна різниця

Custodial — провайдер зберігає приватний ключ. Користувач аутентифікується через email/password/OAuth. Відновлення тривіальне, KYC/AML вбудовані. Для централізованих додатків з фінансовими операціями — часто єдиний регуляторно прийнятний варіант. Ризик: single point of failure (злом Bitfinex — значні втрати, FTX — понад значну суму клієнтських коштів).

Non-custodial — ключі у користувача. Провайдер не має доступу до коштів. Відповідальність за зберігання лягає на користувача. Для 99% людей це непрацююча модель без додаткового захисту — тут і приходить MPC.

MPC-гаманці: ключ, якого немає

Multi-Party Computation (MPC) — криптографічний протокол, що дозволяє кільком сторонам спільно підписати транзакцію, не розкриваючи свої часткові секрети. Приватний ключ ніколи не існує в зібраному вигляді.

Стандартна схема: 2-of-3 MPC між користувачем (частка на пристрої), сервером провайдера та резервним хмарним сховищем. Транзакція підписується двома будь-якими з трьох сторін. Телефон втрачено — відновлення через сервер + хмару. Сервер скомпрометовано — атакуючий володіє лише однією часткою, підпис неможливий.

TSS (Threshold Signature Scheme) — конкретна реалізація MPC для ECDSA/EdDSA. Алгоритми: GG18, GG20, CGGMP21 (останній швидший і з кращими security proof). Бібліотеки: tss-lib (Go, від Binance), multi-party-sig (Go, від Coinbase), ZenGo-X/multi-party-ecdsa (Rust).

MPC не потребує on-chain змін — для блокчейна підпис виглядає як звичайний single-key підпис. Це дає економію gas та зберігає конфіденційність схеми управління ключами (не публікується в ланцюжку) — на відміну від мультисига.

Account Abstraction (EIP-4337): смарт-контракт як гаманець

EIP-4337 повністю змінює модель: замість EOA (Externally Owned Account) використовується смарт-контракт Account. Логіка авторизації — в коді контракту, а не в криптографії протоколу. Це відкриває довільну логіку підпису, соціальне відновлення, сесійні ключі, sponsored транзакції та батчинг операцій.

User → UserOperation → Bundler → EntryPoint contract → Account contract
                                          ↑
                                    Paymaster (optional, pays gas)

UserOperation — новий тип об'єкта (не L1-транзакція). Bundler збирає UserOps з альтернативного mempool, упаковує в одну транзакцію та відправляє в EntryPoint. EntryPoint викликає validateUserOp на Account контракті — Account сам вирішує, чи дійсний підпис.

Практичні можливості:

Соціальне відновлення. Контракт зберігає список guardian'ів (інші адреси або сервіс). Втрата ключа — guardians голосують за заміну. Argent використовує схему з 2020 року.

Сесійні ключі. Тимчасовий ключ з обмеженими правами: взаємодія лише з конкретним контрактом, до певної дати, до певної суми. Для GameFi та dApps — користувач не підписує кожну мікро-транзакцію.

Paymaster. Сторонній контракт платить газ за користувача. Паттерн для онбордингу: користувач не тримає ETH, газ спонсорує dApp або береться з ERC-20 токенів.

Реалізації: Safe{Core} Protocol, Biconomy SDK (Stackup), ZeroDev (Kernel), Alchemy (Rundler bundler). На Ethereum mainnet, Polygon, Arbitrum, Optimism EntryPoint v0.6/v0.7 задеплоєний та активний. Гарантуємо сумісність з останніми версіями контрактів.

Hardware Security Module для корпоративних гаманців

Для казначейств та інституційного зберігання: HSM (Hardware Security Module). Ключ генерується і ніколи не покидає захищений чип. Підпис — всередині HSM. Підтримується апаратна атестація. Використовувані рішення: AWS CloudHSM, Azure Dedicated HSM, Thales Luna, YubiHSM 2 (для невеликих обсягів). Інтеграція через PKCS#11 або cloud-specific API.

Комбінація HSM + MPC — оптимальна для інституційного використання: ключові частки зберігаються в HSM на різних серверах/юрисдикціях, підпис через TSS. Це забезпечує відповідність регуляторним вимогам (наприклад, для крипто-кастодіанів).

Інтеграція з dApps: WalletConnect та стандарти

Будь-який гаманець повинен вміти взаємодіяти з dApps. Стандарт — WalletConnect v2 (Sign API): QR-код або deep link, peer-to-peer зашифрований канал через relay сервер. Для браузерних розширень — EIP-1193 (Ethereum Provider API).

На фронтенді використовуємо wagmi + viem — один інтерфейс для MetaMask, WalletConnect, Coinbase Wallet, injected providers. Для Account Abstraction — EIP-5792 (wallet capabilities) та EIP-7677 (paymaster service).

Процес розробки

  1. Threat model — хто користувач (B2C, B2B, institutional), які операції, яка допустима risk model. Від цього залежить архітектура.
  2. Вибір та проектування схеми зберігання ключів — MPC, HSM, мультисиг або їх комбінація.
  3. Розробка Account контракту (якщо EIP-4337) або інтеграція MPC-бібліотеки.
  4. Backend — MPC-координація, управління сесіями, paymaster-сервіс (якщо потрібен).
  5. Мобільний/браузерний застосунок — UI з інтеграцією WalletConnect, біометрії, QR.
  6. Інтеграція з dApps — EIP-1193, WalletConnect v2.
  7. Аудит контрактів та криптографічних реалізацій — обов'язковий етап. MPC-бібліотеки мають відомі вразливості (GG18 піддається атаці при malicious participant без abort protocol). Використовуємо бібліотеки з актуальними security review (CGGMP21). Досвід проходження аудитів у Certik, Hacken, Trail of Bits — підтверджуємо сертифікатами.

Що входить в роботу (deliverables)

  • Вихідні коди смарт-контрактів (Solidity/Rust) з документацією
  • Backend-сервіс MPC-координації (на Go або Rust) з API
  • Мобільний застосунок (iOS/Android) або браузерне розширення
  • Інтеграція з WalletConnect, Ledger/Trezor (за потреби)
  • Підготовка до аудиту безпеки (звіт зі списком вразливостей)
  • Документація адміністратора та користувача
  • Доступ до репозиторію, CI/CD, моніторинг (Tenderly, Etherscan API)
  • Навчання вашої команди (2-3 сесії)
  • Підтримка після запуску — 1 місяць

Строки та вартість

Тип рішення Строки (робочі тижні)
Custodial з базовим UI 4–8
Non-custodial з MPC-інтеграцією 8–16
EIP-4337 Account з paymaster 6–12
Institutional (HSM + MPC + compliance) від 16

Вартість розраховується індивідуально під ваш проект. Оцінимо за 1 день — зв'яжіться з нами. Надаємо гарантію на код та timeline.

Типові помилки при розробці криптогаманців (і як їх уникнути)

  • Використання застарілих MPC-бібліотек — GG18 без abort protocol. Обираємо CGGMP21 або tss-lib з актуальними audit report.
  • Жорстка прив'язка до одного блокчейну — не закладають абстракцію під L2/сайдчейни. Використовуємо viem/wagmi для кросс-чейн.
  • Ігнорування MEV-атак — при використанні мультисига без таймлоків. Додаємо tx simulation (Tenderly) та sandwitching protection.
  • Відсутність fallback-механізму відновлення — для Account Abstraction не налаштовують social recovery. Закладаємо з першого релізу.

Усуваємо ці граблі на етапі проектування — під кожен проект складаємо threat model та security checklist.

Потрібен надійний гаманець без компромісів? Отримайте консультацію нашого архітектора — розберемо вашу задачу та запропонуємо архітектуру з точним кошторисом. Залишайте заявку — відповімо протягом дня.