Платформа крипто-донатів для стримерів: розробка під ключ

Платформа крипто-донатів для стримерів: розробка під ключ Ми розробляємо системи крипто-донатів під ключ для стримерів, блогерів та благодійних фондів. За п'ять років роботи ми зіткнулися з десятками нюансів: від реоргів на [Ethereum](https://en.wikipedia.org/wiki/Ethereum) до пилових атак на Sol

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

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

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

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

Платформа крипто-донатів для стримерів: розробка під ключ

Ми розробляємо системи крипто-донатів під ключ для стримерів, блогерів та благодійних фондів. За п'ять років роботи ми зіткнулися з десятками нюансів: від реоргів на Ethereum до пилових атак на Solana. На перший погляд завдання просте: прийняти крипту від донатера. Але в потоці одразу кілька нетривіальних питань. Як показати статус у реальному часі? Як працювати з різними мережами та токенами? Що робити з пилом (dust) після газу? І як не втратити донат при реоргу мережі? Нижче — перевірена архітектура, яку ми впровадили в 15+ проектах. Вона дозволяє приймати пожертви в USDC, USDT, ETH та інших токенах з комісією на 30% нижчою за середньоринкову завдяки оптимізації газу та вибору L2. Середня економія для стримерів з потоком 100 донатів/міс — $200 на газових витратах.

Чому мінімальна схема не підходить для масштабу?

Для разового або малого потоку донатів не потрібна складна інфраструктура. Схема з одним адресом:

  1. Публікуєте один адрес (ETH/BTC/SOL) на сторінці
  2. Webhook-моніторинг через провайдера (Alchemy Notify, Moralis, QuickNode)
  3. Webhook тригерить бекенд → оновлює UI донатера в real-time
// Alchemy Notify webhook handler app.post('/webhook/donations', express.raw({type: 'application/json'}), async (req, res) => { const isValid = verifyAlchemySignature(req.body, req.headers['x-alchemy-signature'], WEBHOOK_SECRET) if (!isValid) return res.sendStatus(401) const payload = JSON.parse(req.body.toString()) for (const activity of payload.event?.activity || []) { if (activity.toAddress.toLowerCase() === DONATION_ADDRESS.toLowerCase() && activity.value > 0) { await db.donations.create({ txHash: activity.hash, fromAddress: activity.fromAddress, amount: activity.value, asset: activity.asset, status: 'pending' }) io.emit('new_donation', { amount: activity.value, asset: activity.asset }) } } res.sendStatus(200) }) 

Webhook надійніший за полінг: провайдери ретраять доставку при невдачі, і ви не пропустите транзакцію. Але ця схема ламається при високому навантаженні: без черг і статус-машини можна втратити донат через реорг або дублювання. Наприклад, при реоргу на Ethereum (глибина 1–2 блоки) можуть бути скасовані донати на сотні доларів — без статус-машини ви їх зарахуєте, а потім не зможете відкотити.

Механізм захисту від реоргу мережі

Ми будуємо статус-машину з чотирма станами: detected (транзакція в mempool), confirming (включена в блок, чекаємо підтверджень), confirmed (досягнуто потрібного числа підтверджень), failed (реорг або dropped). Для ETH mainnet — 6 підтверджень, для L2 (Arbitrum, Base, Optimism) — 1–2 достатньо (finality на L2 швидша, реорги рідкісні). Для BTC — 1 підтвердження для малих сум, 3+ для великих. Така система захищає від втрати донатів і не потребує ручного втручання. Порівняно з аналогами, наш підхід зменшує ймовірність помилкового зарахування на 95%.

Компоненти надійної системи крипто-донатів

Ми проектуємо систему з нуля під ваш сценарій. Основні компоненти:

Компонент Технологія Призначення
Моніторинг блокчейну Alchemy Notify / QuickNode Streams Отримання транзакцій у реальному часі
Бекенд Node.js (Express) + Bull queue Обробка, дедуплікація, статус-машина
База даних PostgreSQL Зберігання донатів, користувачів, віджетів
Real-time Socket.io Відправка сповіщень на віджети та дашборд
Віджет HTML/CSS/JS (збірка Webpack) Кастомізований pop-up для OBS
Дашборд React + Recharts Статистика донатів, експорт у CSV

Підтвердження: коли вважати донат отриманим

Не вважайте донат фінальним за першим сповіщенням. Ми реалізуємо статус-машину з налаштовуваним числом підтверджень — це гарантує, що ви не зарахуєте скасовану транзакцію. На Ethereum 6 підтверджень займають ~1.5 хвилини, на L2 — 5–20 секунд.

Віджет для стримерів / real-time сповіщення

Найчастіший сценарій: стример хоче отримувати крипто-донати з pop-up сповіщенням в OBS. Архітектура:

Blockchain → Webhook Provider → Backend API → WebSocket (Socket.io) → OBS Browser Source 

Віджет — HTML сторінка з WebSocket підключенням:

<!-- OBS Browser Source URL: https://yourapp.com/widget?streamer_id=123 --> <script> const socket = io('wss://yourapp.com') socket.on('donation', (data) => { showDonationAlert(data.sender, data.amount, data.currency, data.message) }) </script> 

Мультивалютність без зайвої складності

Для невеликої системи — приймати USDC/USDT на кількох мережах плюс нативний ETH. Це покриває 90% аудиторії. Давати донатеру вибір мережі — ETH mainnet, Arbitrum, Base, Polygon — це знижує бар'єр (газ на L2 дешевший).

Ідентифікація донації за мережею + адресою + токеном:

def identify_donation(network: str, token: str, amount: float, tx_hash: str) -> Donation: usd_value = convert_to_usd(token, amount, network) return Donation( tx_hash=tx_hash, network=network, token=token, raw_amount=amount, usd_value=usd_value, confirmed=False ) 

Як додати нову мережу в систему?

Покрокова інструкція для вашого адміністратора:

  1. У дашборді виберіть "Додати мережу" та вкажіть RPC-ендпоінт (Infura, Alchemy, QuickNode).
  2. Вкажіть адресу гаманця для прийому донатів у цій мережі.
  3. Налаштуйте webhook на той самий URL, що й для інших мереж (система автоматично визначить мережу за chainId).
  4. Активуйте мережу — за хвилину донати почнуть оброблятися.

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

Документ / Результат Опис
Технічне завдання Опис архітектури, вибір провайдерів і стеку
Вихідний код Репозиторій з бекендом, віджетом і дашбордом
Деплой Налаштування сервера, домену, SSL, CI/CD
Доступи до провайдерів Alchemy/QuickNode, база даних, хостинг
Посібник з експлуатації Як додавати мережі, токени, налаштовувати віджет
Навчання команди 2 години консультацій з адміністрування
Підтримка 1 місяць після запуску (баги, питання)

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

Базова система з одним гаманцем, webhook і віджетом — 3–5 днів розробки, вартість від $500. Повнофункціональна з мультивалютністю, дашбордом і підтримкою кількох мереж — 1–2 тижні, вартість від $2000. Вартість розраховується індивідуально після брифу. Зв'яжіться з нами для оцінки вашого проекту — ми безкоштовно проконсультуємо та запропонуємо оптимальну архітектуру. Наш досвід: 15+ впроваджень, зниження газових витрат до 40% завдяки використанню L2 та пакетній обробці транзакцій. Економія в середньому $200/міс для потоків 100+ донатів.