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

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

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

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

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

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

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

Зазначимо: коли користувач хоче платити криптовалютою у звичайному магазині, виникає складний ланцюжок: конвертація, авторизація, settlement — і все за 1–2 секунди. Ми побудували не одну таку систему і знаємо кожен підводний камінь: від вибору card issuing провайдера до real-time webhook-обробника. У цьому матеріалі — архітектура, яка працює в продакшені.

Крипто-картка — це міст між on-chain активами та традиційною платіжною інфраструктурою. Користувач тримає USDC, платить у звичайному магазині — система конвертує та списує у фоновому режимі. Побудувати це складніше, ніж здається: тут перетинаються card issuing, real-time конвертація, compliance та блокчейн-інфраструктура. Ми реалізували такі системи для neobank-стартапів та crypto-native платформ, зіткнувшись із нюансами batch settlement, форс-мажорами oracle та юридичними вимогами в юрисдикціях ЄС та США. Нижче — деталі, які заощадили місяці розробки. Якщо вам потрібна подібна система — зв'яжіться з нами для консультації.

Card Issuing: з ким працювати

Самостійно отримати BIN спонсора та емітувати картки — довго та дорого: партнерство з Visa/Mastercard вимагає значного депозиту та займає 12–18 місяців. Реалістичний шлях — працювати через card issuing платформи:

  • Marqeta — лідер ринку, програмовані картки через Just-in-Time (JIT) Funding. Ключова фіча: при кожній авторизації Marqeta робить webhook на ваш сервер, ви вирішуєте — схвалити чи відхилити та миттєво фондуєте транзакцію. Ідеально для крипто-карток.
  • Lithic (колишній Privacy) — аналог Marqeta, часто кращий для стартапів через простіший onboarding.
  • Moorwand / Railsr (Європа) — для європейських карток з IBAN.
  • Monavate / Paymentology — альтернативи з більш гнучкими умовами для crypto-native компаній.

Усі ці провайдери дають REST API для випуску карток, керування лімітами, отримання транзакцій.

Механізм JIT Funding

Just-in-Time Funding — це коли баланс на картці завжди нульовий, а гроші з'являються лише в момент авторизації. Для крипто-картки це означає: користувач авторизує покупку → card processor викликає ваш webhook → ви конвертуєте крипту в фіат → підтверджуєте транзакцію — все за 1–2 секунди.

Документація Marqeta: "Just-in-Time Funding дозволяє емітентам контролювати кожну авторизацію в реальному часі."

Ось покрокова послідовність обробки:

  1. Card processor (Marqeta, Lithic) надсилає HTTP-запит на ваш webhook з деталями авторизації.
  2. Сервіс визначає користувача за card_token та перевіряє доступний баланс в USDC через локальний кеш або швидкий запит до блокчейну.
  3. Якщо коштів достатньо (з урахуванням буфера на slippage), система резервує суму (soft lock) і повертає рішення APPROVE.
  4. Після settlement (через хвилини або години) запускається реальна конвертація USDC в фіат через off-ramp провайдера.
  5. Баланс користувача оновлюється, надсилається push-повідомлення.

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

interface AuthorizationWebhook {
  type: "authorization";
  token: string;
  card_token: string;
  amount: number; // в центах
  currency: string; // ISO 4217
  merchant: {
    descriptor: string;
    mcc: string;
    country: string;
  };
  created: string;
}

async function handleAuthorization(
  webhook: AuthorizationWebhook
): Promise<AuthorizationResponse> {
  // 1. Знайти користувача та його крипто-баланс
  const user = await getUserByCardToken(webhook.card_token);
  const requiredUsd = webhook.amount / 100;
  
  // 2. Перевірити доступний баланс в USDC
  const usdcBalance = await getUsdcBalance(user.walletAddress);
  if (usdcBalance < requiredUsd * 1.01) { // +1% буфер на slippage
    return { decision: "DECLINE", reason: "INSUFFICIENT_FUNDS" };
  }
  
  // 3. Зарезервувати кошти (soft lock)
  const reservation = await reserveFunds(user.id, requiredUsd, webhook.token);
  
  // 4. Підтвердити авторизацію
  return {
    decision: "APPROVE",
    amount: webhook.amount,
    reservation_id: reservation.id,
  };
}

Settlement та реальне списання

Після авторизації йде settlement — фактичне переміщення коштів. Це може відбуватися через хвилини або години після авторизації. Тут виконується реальна конвертація крипти.

async function settleTransaction(settlementData: SettlementEvent): Promise<void> {
  const reservation = await getReservation(settlementData.authorization_token);
  
  // Для USDC — просто перевести на фіатний рахунок через USDC → USD off-ramp
  // (Circle, Stripe Crypto, Bridge.xyz)
  const offRampResult = await circleOffRamp({
    amount: reservation.usdAmount,
    destinationBankAccount: OPERATIONAL_ACCOUNT,
  });
  
  // Оновити баланс користувача
  await deductUserBalance(reservation.userId, reservation.usdcAmount);
  
  // Надіслати push-повідомлення
  await sendTransactionNotification(reservation.userId, {
    amount: reservation.usdAmount,
    merchant: settlementData.merchant.descriptor,
    txId: offRampResult.id,
  });
}

Конвертація: USDC vs volatility assets

USDC/USDT — найпростіший випадок. Конвертація тривіальна, оскільки курс прив'язаний. Більшість крипто-карток першого покоління працюють лише зі стейблкоїнами.

ETH/BTC та інші — потрібен real-time price feed та управління ціновим ризиком. Варіанти:

  • Конвертувати в USDC при поповненні картки — користувач явно міняє ETH → USDC, далі все як вище. Найпростіший підхід.
  • Конвертувати в момент транзакції — вищий ризик slippage (зазвичай 0.5–1%) та цінового gap між авторизацією та settlement. Потребує hedging стратегії.
  • Віртуальний баланс + періодичний settlement — агрегуєте транзакції, конвертуєте батчами. Знижує transaction costs, але ускладнює accounting.

Чому важливий правильний вибір card issuing провайдера?

Успіх крипто-картки прямо залежить від здатності провайдера обробляти мільйони JIT Funding запитів з мінімальною затримкою. Marqeta краще для JIT Funding завдяки більш детальним webhook-конфігураціям, але Lithic швидше в інтеграції для стартапів. Для європейського ринку — Moorwand або Railsr з підтримкою SEPA Instant. Помилка на цьому етапі призводить до відмов транзакцій та втрати довіри користувачів.

Як забезпечити compliance при випуску крипто-карток?

Крипто-картка з реальним використанням — це фінансовий продукт, який регулюється як мінімум як електронні гроші. Обов'язкові компоненти:

  • KYC/AML — провайдери: Sumsub, Persona, Onfido. Інтеграція через REST API + webhook на події верифікації. Мінімальний tier: документ + selfie. Для високих лімітів — Enhanced Due Diligence (EDD). Детальніше про KYC та AML.
  • Transaction monitoring — аналіз on-chain історії адрес користувачів. Chainalysis API або Elliptic для перевірки: чи не надходять кошти з санкційних адрес, міксерів, darknet markets.
  • Ліміти за замовчуванням — поки KYC не пройдено: встановлюються відповідно до регуляторних вимог (наприклад, за PSD2 exemption). Після верифікації — стандартні ліміти. Це вимога card schemes, а не ваша вигадка.

Технічний стек

Компонент Варіанти Рекомендація
Card issuing Marqeta, Lithic Marqeta для JIT Funding
Backend Node.js/TypeScript, Go Go для latency-sensitive webhook handler
База даних PostgreSQL + Redis для reservation locks
Блокчейн Viem, ethers.js Viem для EVM
Off-ramp Circle, Bridge.xyz Circle USDC → USD
KYC Sumsub, Persona Sumsub — найкраще охоплення країн
Нотифікації Firebase, Appcenter Firebase для push

Webhook handler для авторизації має працювати окремим високодоступним сервісом з SLA 99.9%+, мінімальною кількістю залежностей та локальним кешем для швидких перевірок балансу.

Терміни розробки

Етап MVP Повний продукт
Архітектура та вибір стеку 2 тижні 1 місяць
Інтеграція card issuing 2–3 тижні 1–2 місяці
Backend (webhook + core) 2 місяці 5–7 місяців
Off-ramp та конвертація 3 тижні 2–3 місяці
KYC/AML модуль 1 місяць 2–3 місяці
Тестування та аудит 2 тижні 1–2 місяці
Юридичні договори паралельно 3–6 місяців

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

  • Архітектура та вибір стеку під вашу бізнес-модель (B2C або B2B).
  • Інтеграція з card issuing провайдером, налаштування JIT Funding.
  • Backend на Go або Node.js з обробкою webhook-ів (latency < 1 сек).
  • Підключення off-ramp (Circle, Bridge.xyz) для конвертації USDC → фіат.
  • KYC/AML модуль з підтримкою Sumsub або Persona.
  • Transaction monitoring, ліміти, блокування.
  • Документація API та інструкції з експлуатації.
  • Технічна підтримка на етапі запуску та перші 2 місяці після релізу.

Ми гарантуємо відповідність вимогам card schemes та регуляторів. Наш досвід — 5+ років у розробці крипто-сервісів: від гаманців до повноцінних neobank рішень.

Типові помилки при інтеграції JIT Funding:

  • Синхронні блокчейн виклики у webhook-і — гарантований тайм-аут.
  • Відсутність локального кешу балансів — 100мс+ затримка на кожен запит.
  • Неправильний розрахунок комісій — settlement може згоріти через перевищення ліміту.
  • Ігнорування мультивалютних settlement-ів — при конвертації може виникнути від'ємний баланс.

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

Ми розробляємо криптогаманці під ключ — від 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.

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