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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка системы управления крипто-картой
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1258
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1170
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    873
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1092
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    830

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

Крипто-карта — это мост между on-chain активами и традиционной платёжной инфраструктурой. Пользователь держит USDC, платит в обычном магазине — система конвертирует и списывает в фоне. Построить это сложнее, чем кажется: здесь пересекаются card issuing, real-time конвертация, compliance, и блокчейн-инфраструктура. Разберём, из чего это состоит.

Card Issuing: с кем работать

Самостоятельно получить BIN спонсора и эмитировать карты — долго и дорого (Visa/Mastercard партнёрство, $500k+ депозиты, 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 секунды.

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,
  };
}

Webhook должен отвечать за 1–2 секунды. Если таймаут — транзакция автоматически отклоняется. Это жёсткое требование, которое определяет всю архитектуру: никаких синхронных блокчейн операций в этом пути.

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 — простейший случай. 1 USDC ≈ 1 USD, конвертация тривиальна. Большинство крипто-карт первого поколения работают только со стейблкоинами.

ETH/BTC и другие — нужен real-time price feed и управление ценовым риском. Варианты:

  • Конвертировать в USDC при пополнении карты — пользователь явно меняет ETH → USDC, дальше всё как выше. Самый простой подход.
  • Конвертировать в момент транзакции — выше риск slippage и ценового gap между авторизацией и settlement. Требует hedging стратегии.
  • Виртуальный баланс + периодический settlement — агрегируете транзакции, конвертируете батчами. Снижает transaction costs, но усложняет accounting.

Compliance и KYC

Крипто-карта с реальным использованием — это финансовый продукт, регулируемый как минимум как электронные деньги. Обязательные компоненты:

KYC/AML — провайдеры: Sumsub, Persona, Onfido. Интеграция через REST API + webhook на события верификации. Минимальный tier: документ + selfie. Для высоких лимитов — Enhanced Due Diligence (EDD).

Transaction monitoring — анализ on-chain истории адресов пользователей. Chainalysis API или Elliptic для проверки: не поступают ли средства с санкционных адресов, миксеров, darknet markets.

Лимиты по умолчанию — пока KYC не пройден: например, 150 EUR/мес (под 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 (USDC карта, один регион, базовый KYC): 3–5 месяцев. Полнофункциональный продукт с мультивалютой, multi-chain, продвинутым compliance — 8–14 месяцев. Significant часть времени — не код, а юридическая структура, партнёрские договоры с card issuer и банком-эмитентом.