Интеграция с Visa/Mastercard для крипто-карты

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Интеграция с Visa/Mastercard для крипто-карты
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

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

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

Последние работы

  • 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

Вы запускаете криптоплатформу и хотите выпустить дебетовую карту, которая конвертирует BTC в USD за секунду до оплаты. Проблема: интеграция с Visa/Mastercard требует трёх уровней — principal member (банк с членством в сети), program manager (Marqeta/Stripe Issuing) и ваша платформа. Прямое членство — 12–24 месяца и капитал от $2M. Реалистичный путь для стартапа — работа через program manager, который уже имеет членство. Мы специализируемся на технической стороне такой интеграции под ключ: от выбора процессингового партнёра до запуска карточного продукта.

Наш опыт показывает, что большинство криптоплатформ выбирают Marqeta как card issuing API — это наиболее гибкое решение с поддержкой JIT Funding. Альтернатива — Stripe Issuing, но она требует предварительного фиатного резерва. Мы поможем оценить ваш проект и выбрать оптимального провайдера.

Чтобы понимать архитектуру, разберём структуру:

Visa/Mastercard Network
    ↓
Principal Member Bank (BIN owner)
    ↓
Card Program Manager (Marqeta, Stripe Issuing, Galileo)
    ↓
Your Crypto Platform
    ↓
End User

Principal Member — банк с прямым членством в Visa/MC, выдаёт BIN-диапазоны. Program Manager — технологический посредник, предоставляет API для выдачи карт и процессинга авторизаций, берёт на себя технические и частично регуляторные обязательства. Ваша платформа обрабатывает крипто-сторону: хранение активов, конвертация, пользовательский интерфейс.

Как работает JIT Funding для крипто-карт?

Marqeta — лидирующий card issuing API, используемый Cash App, DoorDash, Coinbase Card. Работает как program manager: вы через их API выпускаете карты, они обрабатывают авторизации и через Just-In-Time (JIT) funding запрашивают у вас средства в момент каждой транзакции. Это делает Marqeta лучшим выбором для потребительских крипто-карт по сравнению со Stripe Issuing, которое требует предварительного финансирования.

JIT (Just-In-Time) Funding — механизм, при котором Marqeta не держит баланс пользователя у себя. Вместо этого в момент каждой карточной авторизации Marqeta делает webhook-запрос к вашему API, а вы отвечаете approve/decline с суммой. Это позволяет применить вашу бизнес-логику (проверить крипто-баланс, сконвертировать) в реальном времени.

// Ваш JIT Funding endpoint
app.post("/marqeta/jit-funding", async (req, res) => {
  const { token, type, amount, currency_code, card_token } = req.body;
  
  const userId = await getUserByCardToken(card_token);
  const user = await getUser(userId);
  
  const cryptoAmount = await convertUSDToCrypto(amount, user.preferredAsset);
  
  const hasBalance = await reserveBalance(userId, cryptoAmount);
  
  if (!hasBalance) {
    return res.json({
      jit_funding: {
        token: token,
        method: "pgfs.authorization",
        user_token: userId,
        amount: 0,
      },
    });
  }
  
  return res.json({
    jit_funding: {
      token: token,
      method: "pgfs.authorization",
      user_token: userId,
      amount: amount,
      currency_code: "USD",
    },
  });
});

Marqeta API — выдача карт

import Marqeta from "@marqeta/core-api";

const marqeta = new Marqeta({
  applicationToken: process.env.MARQETA_APP_TOKEN,
  accessToken: process.env.MARQETA_ACCESS_TOKEN,
  baseUrl: "https://sandbox.marqeta.com/v3",
});

async function createMarqetaUser(userId: string, userData: UserData) {
  const marqetaUser = await marqeta.users.create({
    token: userId,
    first_name: userData.firstName,
    last_name: userData.lastName,
    email: userData.email,
    birth_date: userData.birthDate,
    address1: userData.address,
    city: userData.city,
    state: userData.state,
    country: userData.country,
    postal_code: userData.postalCode,
  });
  return marqetaUser;
}

async function issueVirtualCard(userId: string) {
  const card = await marqeta.cards.create({
    user_token: userId,
    card_product_token: process.env.CARD_PRODUCT_TOKEN,
  });
  const cardDetails = await marqeta.cards.getShowPAN(card.token);
  return {
    cardToken: card.token,
    last4: card.last_four,
    expiration: card.expiration,
    pan: cardDetails.pan,
    cvv2: cardDetails.cvv_number,
  };
}

Когда выбирать Stripe Issuing, а когда Marqeta?

Stripe Issuing проще в интеграции, доступен в 30+ странах. Не поддерживает JIT Funding в полной мере — баланс должен быть pre-funded на Stripe счёте, что требует держать фиатный резерв у Stripe. Это усложняет крипто-интеграцию. Подходит для B2B expense management карты, корпоративные карты с крипто-балансом. Не оптимален для consumer crypto debit cards.

Marqeta подходит для consumer карт в 2 раза лучше Stripe Issuing за счёт JIT Funding. Если ваш продукт — крипто-дебетовая карта для пользователей, выбирайте Marqeta. Для B2B expense management — Stripe Issuing.

import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

const card = await stripe.issuing.cards.create({
  cardholder: cardholderId,
  currency: "usd",
  type: "virtual",
  status: "active",
  spending_controls: {
    spending_limits: [{ amount: 50000, interval: "daily" }],
  },
});
Параметр Marqeta Stripe Issuing
JIT Funding Да Нет (pre-funded)
Крипто-карты Отлично подходит Ограниченно (B2B)
API Мощное, гибкое Проще, меньше настроек
География Глобально 30+ стран
Стоимость выпуска карты ~$2 ~$3

Marqeta взимает около $2 за выпуск виртуальной карты и $0.10 за авторизацию. При объёме 10 000 карт в месяц экономия на фиатном резерве может составить до $50 000 в год.

Авторизации, settlement и курсовой риск

Важно понимать разницу: Authorization — проверка и блокировка средств, происходит мгновенно, ваш JIT endpoint должен отвечать за 2-3 секунды. Clearing/Settlement — фактическое списание, происходит через 1-3 рабочих дня. Refund/Reversal — отмена транзакции, может прийти через несколько дней после authorization.

app.post("/marqeta/webhook", async (req, res) => {
  const event = req.body;
  switch (event.type) {
    case "authorization":
      await holdCrypto(event.card_token, event.amount);
      break;
    case "authorization.clearing":
      await settleTransaction(event.transaction.token, event.amount);
      break;
    case "authorization.reversal":
      await releaseHold(event.transaction.token);
      break;
    case "refund":
      await refundCrypto(event.card_token, event.amount);
      break;
  }
  res.status(200).send("OK");
});

Как управлять курсовым риском при JIT Funding?

При холде USD суммы в крипто-эквиваленте есть риск изменения курса между authorization (T+0) и settlement (T+1..3). Три подхода:

  • Стейблкоин по умолчанию (USDC/USDT). Нет курсового риска. Пользователи хранят в стейблкоинах, оплата прямолинейна. Минус — нет крипто-апсайда.
  • Over-reservation. При авторизации резервируем сумму с буфером (+2-3%). При settlement излишек возвращается. Простое решение для небольших объёмов.
  • FX hedge. При авторизации фиксируем курс через деривативы или быстрый CEX trade. Сложнее, дороже, но точнее. Нужен для крупных объёмов или волатильных активов.

PCI DSS и регуляторный путь

Работа с номерами карт (PAN) требует PCI DSS сертификации. Уровни: SAQ A — если не обрабатываете PAN напрямую (Marqeta хранит, вы только токены), минимальные требования; SAQ D — если храните/обрабатываете PAN, полный audit, дорого. Рекомендуем использовать card tokenization (Marqeta Token Vault) — ваша система оперирует только card_token, PAN никогда не проходит через ваши серверы.

Юрисдикция Требование Срок Особенности
EU EMI лицензия (Lithuania) 6-12 мес Требуется паспортизация, партнёрство с эмитентом
UK FCA EMI 9-18 мес Высокие регуляторные требования
USA MTL в каждом штате 12-24 мес Дорого, альтернатива — партнёрство с bank
Singapore MAS Major Payment Institution 12-18 мес Требуется локальное присутствие

Минимальный путь для EU: регистрация в Литве + паспортизация. Для остального мира — партнёрство с уже лицензированным эмитентом.

Пошаговый процесс интеграции

  1. Аналитика и выбор провайдера: оценка объёмов, выбор Marqeta или Stripe Issuing.
  2. Проектирование архитектуры: JIT Funding, схема конвертации, хранение ключей.
  3. Интеграция API: выпуск карт, вебхуки, 3DS.
  4. Подключение крипто-custody: кошелёк, конвертация, резервирование.
  5. KYC/AML: интеграция с сервисами верификации.
  6. Тестирование: сценарии авторизации, settlement, refund.
  7. Комплаенс: PCI DSS, лицензирование.

Что входит в интеграцию под ключ

  • Консультация по выбору card issuing провайдера (Marqeta/Stripe Issuing)
  • Настройка JIT Funding endpoint с проверкой крипто-баланса
  • Интеграция API выпуска виртуальных и физических карт
  • Внедрение 3D Secure (3DS) для защиты транзакций
  • Интеграция KYC/AML загрузки документов
  • Помощь с PCI DSS: рекомендации по токенизации, прохождение SAQ
  • Нагрузочное тестирование и мониторинг
  • Документация и обучение команды

Сроки и ориентировочная стоимость

  • Marqeta интеграция (JIT + card issuance + webhooks): 4-6 недель
  • 3DS интеграция: +2-3 недели
  • Crypto custody + конвертация: параллельно, 4-8 недель
  • KYC/AML: 2-4 недели
  • Mobile app: 8-12 недель
  • Compliance + тестирование: 4-6 недель
  • Итого (технически): 5-7 месяцев

Инвестиции в интеграцию — от $50 000 до $200 000 в зависимости от сложности стека и объёмов. Экономия на инфраструктуре за счёт JIT Funding — до 40% по сравнению с собственным фиатным резервом.

Получите консультацию по вашему проекту — оценим архитектуру и сроки за 1-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 — $72M, FTX — $600M+ клиентских средств).

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 транзакции и батчинг операций.

Как работает стек EIP-4337:

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 день — напишите на почту или в Telegram. Предоставляем гарантию на код и 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.

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