Налаштування прийому платежів у множинних криптовалютах: кастомний шлюз

Вирішення проблеми мультикриптовалютних платежів Зазначимо: коли бізнес вирішує приймати криптовалюти, часто уявляють просту кнопку «Сплатити в BTC». Реальність складніша: система має розуміти UTXO-модель Bitcoin, account-based модель EVM з її ERC-20 токенами, а також Solana з SPL-стандартом — і

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

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

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

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

Вирішення проблеми мультикриптовалютних платежів

Зазначимо: коли бізнес вирішує приймати криптовалюти, часто уявляють просту кнопку «Сплатити в BTC». Реальність складніша: система має розуміти UTXO-модель Bitcoin, account-based модель EVM з її ERC-20 токенами, а також Solana з SPL-стандартом — і все це без втрати коштів. Помилка у виборі архітектури може призвести до втрати транзакції або порушення compliance. На основі 50+ проєктів ми виробили універсальну схему, що покриває 90% потреб. Ми пропонуємо надійну підтримку криптовалют для вашого бізнесу з фокусом на безпеку криптовалютних платежів. Ми вирішуємо проблему мультивалютних платежів, забезпечуючи прийом Bitcoin, Ethereum, USDT (ERC-20 і TRC-20), Solana USDC та інших токенів. Кастомний крипто-платіжний шлюз дає повний контроль над комісіями, часом підтвердження та безпекою. В одному з нещодавніх кейсів ми інтегрували 7 мереж за 10 робочих днів, забезпечивши наскрізну видимість платежів у реальному часі. Використовуємо Foundry для компіляції смарт-контрактів та viem для моніторингу EVM-мереж. Кожна інтеграція включає налаштування підтверджень: для Bitcoin мінімум 3, для EVM — 12 блоків, для Solana — фіналізований слот. Це скоротило кількість помилкових зарахувань до нуля.

Який варіант архітектури обрати для вашого об'єму?

Вибір архітектури зводиться до трьох варіантів. Кастомна інтеграція окупається в 2 рази швидше готового провайдера при щомісячних обсягах від $50 000 — економія на комісіях може досягати $2 000 на місяць. За нашими даними, кастомний шлюз в 2 рази ефективніший за готові рішення при обсягах від $50,000 на місяць.

Критерій Готовий провайдер Кастомна інтеграція Гібридний підхід
Час запуску 1-2 дні 2-4 тижні 1-2 тижні
Комісія на транзакцію 0.5-1% 0% (тільки газ мережі) 0% для EVM, ~0.5% для BTC
Контроль над UX Обмежений Повний Високий
Vendor lock-in Є Немає Частковий
Окупність при обсязі >$50k/міс Не окупається 3-6 місяців 6-12 місяців

При щомісячному обсязі понад $50 000 кастомна інтеграція окупається за 3–6 місяців, заощаджуючи від $1 500 на комісіях порівняно з готовими провайдерами. Наприклад, при обсязі платежів $100,000 на місяць кастомний шлюз економить $2,000 порівняно з готовими провайдерами.

Як генерувати адреси для всіх мереж з одного seed (HD wallet BIP44)?

Зазначимо: як вказано в BIP-44, ієрархія: m / purpose' / coin_type' / account' / change / address_index. Для кожного нового платежу генерується нова адреса через інкремент address_index. Один master seed (BIP-39 мнемонічний ключ) детерміністично генерує ієрархічні адреси для всіх мереж відповідно до BIP-44 специфікації.

from hdwallet import HDWallet def derive_address(master_seed: str, coin_type: int, index: int) -> str: wallet = HDWallet() wallet.from_mnemonic(master_seed) # BTC: coin_type=0, ETH: coin_type=60, SOL: coin_type=501 wallet.from_path(f"m/44'/{coin_type}'/0'/0/{index}") return wallet.p2pkh_address() # для BTC # wallet.address() для ETH 
Приклад генерації адрес

Для Bitcoin використовуємо coin_type=0, для Ethereum coin_type=60, для Solana coin_type=501. Зберігайте address_index в БД і монотонно збільшуйте його, ніколи не перевикористовуйте адреси.

Важливо: address_index має монотонно зростати та зберігатися в БД. Ніколи не перевикористовувати адреси — це порушує privacy та ускладнює reconciliation.

Інтеграція по мережах

EVM-мережі (Ethereum, Polygon, BSC, Arbitrum, Base) — Ethereum платежі та інші

Одна кодова база — кілька RPC endpoint'ів. Моніторинг Transfer подій ERC-20 + нативних ETH/MATIC переводів.

import { createPublicClient, http, parseAbi } from 'viem'; import { mainnet, polygon, arbitrum } from 'viem/chains'; const chains = [ { chain: mainnet, rpc: process.env.ETH_RPC, tokens: ETH_TOKENS }, { chain: polygon, rpc: process.env.POLY_RPC, tokens: POLY_TOKENS }, { chain: arbitrum, rpc: process.env.ARB_RPC, tokens: ARB_TOKENS }, ]; // Єдиний обробник для всіх EVM мереж async function watchEVMPayment(client, tokenAddress, recipientAddress, orderId) { return client.watchContractEvent({ address: tokenAddress, abi: ERC20_ABI, eventName: 'Transfer', args: { to: recipientAddress }, onLogs: (logs) => handlePayment(logs, orderId), }); } 

Bitcoin: чому ми рекомендуємо Fulcrum для Bitcoin платежів

Bitcoin UTXO-модель — немає «балансу», є набір unspent outputs. Адреса вважається оплаченою, коли на неї прийшли UTXO з потрібною сумою. Варіанти інтеграції: Electrum Protocol (ElectrumX/Fulcrum) — blockchain.scripthash.subscribe для підписки на зміни адреси; BlockCypher/Mempool.space API — без власної інфраструктури; Bitcoin Core + ZMQ — повна нода з ZeroMQ нотифікаціями. Для production рекомендуємо Fulcrum (швидка SPV-сумісна нода) + власний Bitcoin Core в pruned mode. Підтвердження Bitcoin: 1 підтвердження (~10 хвилин) — для невеликих сум, 3+ — стандарт, 6 — для великих платежів. Застосовуємо стратегію sweep на мультипідписний гаманець для підвищення безпеки.

TRON (USDT TRC20)

TRON — окремий випадок через популярність USDT TRC20 в СНД та Азії. API через TronGrid (HTTP) або власна нода. Адреси в Base58Check форматі (починаються з T).

import tronpy client = tronpy.Tron(network='mainnet') def check_trc20_payment(address: str, contract: str, min_amount: int) -> list: txns = client.get_token_trc20_transfers( contract_address=contract, to_address=address, min_timestamp=int((time.time() - 3600) * 1000) ) return [tx for tx in txns if tx['value'] >= min_amount] 

Solana USDC та SPL-токени

Згідно з документацією Solana, кожен токен має свій Associated Token Account (ATA) для кожного гаманця. Адреса для прийому USDC — не сам гаманець, а його ATA для USDC.

import { getAssociatedTokenAddress } from '@solana/spl-token'; const usdcMint = new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'); const paymentATA = await getAssociatedTokenAddress(usdcMint, paymentKeypair.publicKey); 

Solana фінальність: при використанні commitment level finalized — ~32 слоти (~13 секунд).

Єдина система моніторингу станів платежів

Незалежно від мережі, платіж проходить через один стан: pending_payment -> mempool_detected -> confirmed (N conf) -> settled. PostgreSQL схема:

CREATE TABLE payment_orders ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id VARCHAR(100) UNIQUE NOT NULL, currency VARCHAR(20) NOT NULL, network VARCHAR(20) NOT NULL, payment_address VARCHAR(200) NOT NULL, expected_amount NUMERIC(30, 8) NOT NULL, received_amount NUMERIC(30, 8) DEFAULT 0, tx_hash VARCHAR(200), confirmations INTEGER DEFAULT 0, required_confirmations INTEGER NOT NULL, status VARCHAR(30) DEFAULT 'pending', expires_at TIMESTAMPTZ NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW(), INDEX idx_payment_address (payment_address), INDEX idx_status_expires (status, expires_at) ); 

Для наочності, рекомендовані числа підтверджень:

Мережа Рекомендоване число підтверджень Час одного блоку
Bitcoin 3-6 ~10 хвилин
Ethereum 12 ~12 секунд
Solana (finalized) 1 ~13 секунд
Tron 19 ~3 секунди

Як захиститися від волатильності: курси та tolerance?

Користувач бачить «сплатіть 0.001523 BTC» — курс зафіксовано на 15-30 хвилин. За цей час курс може змінитися на 1-2%. Потрібен tolerance: для стейблкоїнів 0.1%, для BTC 1%, для ETH 1.5%. Курси з мінімальною затримкою: CoinGecko API (безкоштовно, кеш 60 сек) або Binance WebSocket (реальний час, для high-frequency).

Безпека: що ми гарантуємо

  • Приватні ключі ніколи не на веб-сервері. HD-гаманець seed в HSM або мінімум в зашифрованому сховищі (AWS KMS, HashiCorp Vault).
  • Sweep транзакції — автоматичний переказ отриманих коштів на холодний гаманець за розкладом або за порогом суми.
  • Double-spend protection — для BTC і ETH не підтверджувати платіж по першому unconfirmed. Налаштувати required_confirmations адекватно сумі.
  • Адресна валідація — перед збереженням адреса проходить checksum-валідацію (EIP-55 для ETH, Base58Check для BTC). Помилка в адресі = втрата коштів. Реалізовано механізм reorg-захисту на основі глибини конфірмацій.

При вартості однієї транзакції $100 комісія в мережі Ethereum становить ~$2, але при кастомному шлюзі ви контролюєте газ і можете знизити її до $0.50. Для 1000 транзакцій на місяць економія складе $1 500.

Як вибрати між кастомним шлюзом і готовим провайдером?

Кастомна інтеграція окупається в 2 рази швидше готового провайдера при обсягах понад $50 000/міс. При об'ємі $100 000/міс економія на комісіях може досягати $2 000 щомісяця.

Що входить в нашу роботу

  • Документація архітектури та схема потоків транзакцій.
  • Вихідний код інтеграції з кожною мережею (EVM, Bitcoin, Tron, Solana).
  • Інфраструктурні скрипти для розгортання RPC-вузлів або конфігурації провайдерів.
  • Інструкції з експлуатації та відновлення після збоїв.
  • Навчання вашій команді роботі з системою.
  • Підтримка протягом першого місяця після запуску.

Процес впровадження

  1. Аналітика (1-2 дні): визначаємо потрібні валюти, обсяги, географію (TRON популярний в СНД/Азії), вимоги до підтверджень.
  2. Інфраструктура (2-4 дні): налаштовуємо RPC-провайдери або власні ноди, інтегруємо HD wallet, проектуємо схему БД.
  3. Моніторинг (3-4 дні): розробляємо worker-и для кожної мережі, логіку підтверджень, webhook-нотифікації.
  4. Тестування (1-2 дні): testnet для EVM і Solana, Bitcoin testnet, edge cases (underpayment, overpayment, expired order, reorg).

Разом 1-2 тижні залежно від кількості мереж. Зв'яжіться з нами для оцінки точних термінів під ваш проєкт. Ми пропонуємо впровадження під ключ — залиште заявку, ми оцінимо ваш проект безкоштовно.

Наш досвід: більше 5 років на ринку криптовалютних рішень, успішні кейси для 50+ клієнтів. Замовте аудит поточної інфраструктури — ми знайдемо вузькі місця.