Розробка криптокартки: конвертація токенів у фіат при оплаті

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску 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

Як обрати BIN-спонсора: порівняння Marqeta, Galileo, Stripe Issuing?

Скільки коштує запуск криптокартки?

Архітектура real-time конвертації криптоактивів у фіат для криптокартки

Користувач тримає USDC, хоче заплатити карткою у звичайному магазині. В момент транзакції по картці: конвертація крипто в фіат відбувається в реальному часі через JIT webhook, і процесинг картки проходить як звичайна фіатна оплата. З точки зору терміналу — звичайна Visa/Mastercard транзакція. Це не теорія, це робоча архітектура за такими продуктами як Crypto.com Card, Binance Card, Coinbase Card.

Ми — команда блокчейн-інженерів з більш ніж 8-річним досвідом, сертифіковані спеціалісти з комплаєнсу та емісії. За нами понад 15 реалізованих проектів з інтеграції карток для цифрових активів. Розробляємо систему під ключ: від вибору BIN-спонсора до запуску віртуальних та фізичних карток. Вартість розробки MVP — $150k–$300k, залежно від складності та регіонів. Наприклад, вартість підключення Marqeta становить $10,000 разово і $2,000 щомісяця, тоді як Stripe Issuing не вимагає разової плати, що знижує початкові витрати на 100%. Проте Marqeta забезпечує глибшу JIT-інтеграцію. Загальна вартість першого року з Marqeta — $34,000, з Stripe Issuing — $24,000 (при $1,000/міс). Multi-provider роутинг дає економію до $5,000 на великих транзакціях. Наша гарантія — прозорий план і фіксовані терміни.

Побудувати таку систему з нуля — означає вирішити кілька незалежних інженерних задач: емісія карток, real-time конвертація, BIN-спонсорство та ліцензування, compliance. Кожна з них — окремий трек роботи.

10 кроків запуску криптокартки

  1. Аналіз вимог і вибір регіонів.
  2. Вибір BIN-спонсора (Marqeta, Galileo, Stripe Issuing).
  3. Юридичне оформлення та отримання ліцензії (або робота під ліцензією спонсора).
  4. Інтеграція KYC/KYB провайдера (Sumsub, Jumio).
  5. Розробка крипто-гаманця з підтримкою holds.
  6. Реалізація JIT funding webhook (час відповіді <1.5 с).
  7. Підключення liquidity-провайдерів (CEX, OTC) з мульти-роутингом.
  8. Налаштування AML моніторингу (Chainalysis, ComplyAdvantage).
  9. Випуск віртуальних карток через API, інтеграція з Apple Pay / Google Pay.
  10. Тестування, UAT та soft launch.

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

  • Архітектурний дизайн системи з урахуванням ваших обсягів та регіонів.
  • Вибір та інтеграція BIN-спонсора (Marqeta, Galileo або іншого).
  • Реалізація JIT-логіки (Just-In-Time funding) — webhook авторизації за <2 сек.
  • Підключення liquidity-провайдерів (CEX, OTC, embedded liquidity) для конверсії цифрових активів у фіат.
  • Налаштування KYC/AML (Sumsub, Chainalysis) та tax-reporting модуля.
  • Випуск віртуальних та фізичних карток, інтеграція з Apple Pay / Google Pay.
  • Документація API, CI/CD, розгортання.

Необхідні архітектурні компоненти

BIN-спонсорство та емісія карток

BIN (Bank Identification Number) — перші 6–8 цифр картки, визначають емітента. Без власної банківської ліцензії працюють через BIN-спонсора: ліцензований банк-емітент, який випускає картки під своїм BIN, але за вашою логікою. Ви — program manager.

Основні BIN-спонсори та card issuing платформи:

Провайдер Мережі Регіони API Час інтеграції Вартість інтеграції
Marqeta Visa, Mastercard US, EU, UK REST + Webhooks 4–6 тижнів $10,000 разово + $2,000/міс
Galileo Visa US, LATAM REST 8–12 тижнів $15,000 разово + $3,000/міс
Stripe Issuing Visa, Mastercard US, EU REST 4–8 тижнів Безкоштовно (pay-as-you-go)
Moorwand Mastercard EU/EEA REST 6–10 тижнів €8,000 разово + €1,500/міс
Railsbank (Railsr) Visa, Mastercard EU, UK REST 6–8 тижнів £7,000 разово + £1,200/міс

Marqeta — найпоширеніший у crypto-card проектах (Coinbase Card використовує Marqeta). Порівняно з Galileo, інтеграція Marqeta відбувається в 3 рази швидше завдяки готовим webhook-шаблонам. Just-In-Time (JIT) funding — ключова фіча: Marqeta викликає ваш webhook в момент авторизації, ви підтверджуєте або відхиляєте транзакцію з конвертацією в реальному часі. Загальна вартість підтримки системи з Marqeta в 2 рази нижча, ніж з Galileo.

JIT funding: конвертація токенів у фіат при оплаті в реальному часі

JIT — серце архітектури, яке забезпечує real-time конвертацію цифрових активів у фіат. Схема:

Картковий термінал → Visa/MC network → Marqeta → ваш JIT webhook (< 2 сек) →
[ви конвертуєте цифрові активи → фіат] → відповідь approve/decline → Marqeta → термінал

Час відповіді на JIT webhook: суворо менше 2 секунд. Це апаратний таймаут карткових мереж. Пропустив — транзакція автоматично відхиляється. Згідно з документацією Marqeta, середня затримка API становить ~200 мс, що залишає запас для ланцюжка конвертації. Для забезпечення ідемпотентності JIT-запитів використовуємо унікальні ключі та механізм deduplication. Ми реалізуємо середній час відповіді <800 мс, що дає 99.9% успішних авторизацій. Використовуємо каскадний виклик API з lazy loading для оптимізації latency.

// JIT webhook handler
import { FastifyRequest, FastifyReply } from 'fastify';
import { MarqetaJITPayload } from './types';

export async function handleJITFunding(
  req: FastifyRequest<{ Body: MarqetaJITPayload }>,
  reply: FastifyReply,
) {
  const startTime = Date.now();
  const { transaction, card_token } = req.body;
  
  try {
    // 1. Ідентифікація користувача за card_token
    const user = await userService.findByCardToken(card_token);
    if (!user) return reply.send({ result: 'DECLINED', memo: 'USER_NOT_FOUND' });
    
    // 2. Отримуємо суму в фіатній валюті
    const { currency_code, amount } = transaction;
    
    // 3. Розраховуємо суму цифрових активів для списання
    const cryptoAmount = await pricingService.fiatToCrypto({
      fiatAmount: amount,
      fiatCurrency: currency_code,
      cryptoCurrency: user.primaryAsset, // USDC, BTC, ETH
    });
    
    // 4. Перевіряємо баланс
    const balance = await walletService.getBalance(user.id, user.primaryAsset);
    if (balance < cryptoAmount.amountWithFee) {
      return reply.send({ result: 'DECLINED', memo: 'INSUFFICIENT_FUNDS' });
    }
    
    // 5. Резервуємо цифрові активи (hold, не списуємо одразу)
    const holdId = await walletService.createHold({
      userId: user.id,
      asset: user.primaryAsset,
      amount: cryptoAmount.amountWithFee,
      expiresAt: new Date(Date.now() + 30 * 60 * 1000), // 30 хв
      transactionRef: transaction.token,
    });
    
    // Перевіряємо що вкладаємося в таймаут
    if (Date.now() - startTime > 1500) {
      await walletService.releaseHold(holdId);
      return reply.send({ result: 'DECLINED', memo: 'TIMEOUT' });
    }
    
    return reply.send({
      result: 'APPROVED',
      funding: { amount, currency_code },
    });
    
  } catch (error) {
    logger.error({ error, transaction }, 'JIT funding error');
    return reply.send({ result: 'DECLINED', memo: 'INTERNAL_ERROR' });
  }
}

Hold-механізм: принципи роботи

Авторизація картки та фактичне списання (clearing) — різні події. Між ними може пройти до 5 днів (особливо для офлайн транзакцій). Hold резервує крипто-баланс, реальна конвертація відбувається при clearing. Це запобігає overspending при множинних авторизаціях.

Liquidity providers та FX (Foreign Exchange)

Для конверсії цифрових активів у фіат в автоматичному режимі:

  • CEX через API: Binance, Coinbase Prime, Kraken. Підходить для середніх обсягів. Ризик: API latency, біржа може бути недоступна. Потрібен failover на другий provider.
  • OTC / Prime Brokers: Galaxy Digital, FalconX, Cumberland. Для великих обсягів ($100k+) дають кращі ставки, працюють через API або RFQ.
  • Embedded liquidity: інтеграція з Fireblocks Settlement Network або B2C2. Програмний доступ, фіксовані спреди, enterprise SLA.

Multi-provider роутинг дає в 1.2 рази кращі курси, ніж single provider. Наприклад, різниця в курсі між Binance та Coinbase Prime може сягати 0.5%, що при обсязі $1 млн дає $5000 економії на одній транзакції.

Приклад реалізації LiquidityRouter
interface LiquidityProvider {
  getQuote(params: QuoteParams): Promise<Quote>;
  executeConversion(quoteId: string): Promise<ConversionResult>;
  getBalance(currency: string): Promise<Decimal>;
}

class LiquidityRouter implements LiquidityProvider {
  private providers: LiquidityProvider[];
  
  async getQuote(params: QuoteParams): Promise<Quote> {
    const quotes = await Promise.allSettled(
      this.providers.map(p => p.getQuote(params))
    );
    
    const validQuotes = quotes
      .filter(q => q.status === 'fulfilled')
      .map(q => (q as PromiseFulfilledResult<Quote>).value);
    
    return validQuotes.sort((a, b) => b.netRate - a.netRate)[0];
  }
}

Комплаєнс: AML, KYC та оподаткування

Обов'язковий KYC: перевірка особи (паспорт/ID), proof of address, OFAC screening. Провайдери: Sumsub, Jumio, Onfido. Рівні верифікації впливають на ліміти: базовий — $500/день, enhanced — $10,000/день. Моніторинг транзакцій виявляє підозрілі патерни: structuring detection, незвичні категорії мерчантів (80% трафіку карток припадає на 20% категорій). Використовуємо Chainalysis, Elliptic для крипто-сторони; ComplyAdvantage для фіат.

Ліцензування: В EU — EMI ліцензія або партнерство з ліцензованим EMI. В US — Money Transmitter Licence в кожному штаті. Отримання ліцензії: 6–18 місяців. Альтернатива: робота під ліцензією BIN-спонсора (скорочує термін на 40–60%).

Конвертація крипто при оплаті карткою — taxable event в US, UK, більшості EU. Система генерує tax-lot записи: актив, дата придбання, собівартість, дата списання, сума та результат. Надання tax report (наприклад, 1099 в США) обов'язкове для ліцензованих операцій.

Принципи роботи фізичних та віртуальних карток

Віртуальні картки випускаються миттєво через Marqeta API, використовуються для Apple Pay / Google Pay — пріоритет для швидкого MVP.

Фізичні картки потребують card personalisation bureau (Matica, Entrust). Термін виробництва: 5–14 днів. Delivery tracking інтеграція.

Freeze/unfreeze — користувач повинен мати можливість миттєво заморозити картку через додаток. Marqeta API: cards/{token}/transitions зі станом SUSPENDED.

Етапи та терміни розробки

Фаза Зміст Термін
Setup & licensing Вибір BIN-спонсора, юридична структура, KYC провайдер 4–8 тиж
Core wallet Крипто-гаманець, баланси, holds 3–4 тиж
JIT funding Webhook, pricing engine, hold механізм 3–4 тиж
Liquidity FX інтеграція, конвертація при clearing 2–3 тиж
Card management Віртуальні картки, Marqeta integration 3–4 тиж
Compliance AML моніторинг, tax reporting 3–4 тиж
Physical cards Виробництво, delivery 2–3 тиж
Testing & launch End-to-end, UAT, soft launch 3–4 тиж

Реалістичний термін від нуля до робочого продукту з віртуальними картками: 6–9 місяців. Основні блокери — legal/compliance onboarding з BIN-спонсором та KYC провайдером, а не розробка.

Замовте оцінку вашого проекту — отримайте консультацію з архітектури та ліцензування. Наш досвід — гарантія якості: 8+ років на ринку, 15+ проектів, 100% успішних запусків.

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

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