Development of a Crypto Debit Card
A crypto debit card is a bridge between a DeFi wallet and regular Visa/Mastercard payment infrastructure. User holds USDC or ETH on a crypto balance, when paying with the card the system automatically converts the required amount to fiat and processes the transaction through the banking rails. From the merchant's perspective — a regular card. From the user's perspective — paying with crypto.
Architectural Components
The product consists of several independent layers, each requiring its own technical solution and regulatory coverage.
BIN Sponsorship and Card Issuing
Visa/Mastercard don't work directly with crypto companies (rare exceptions). A bank sponsor or card program manager is needed, who has a BIN (Bank Identification Number) and direct participation in card networks.
Options:
- Marqeta — leading fintech infrastructure, API-first card issuance, works with Web3 companies. Requires partnership with a bank.
- Stripe Issuing — available in 30+ countries, fast start, but limited customization.
- Moorwand, Railsbank — European issuers, more flexible for crypto.
- Binance Card, Crypto.com Visa — ready white-label solutions, but without customization options.
For launching your own product, the most realistic path: Marqeta API + bank partner (Metropolitan Commercial Bank, Banking Circle, etc.).
Crypto Custody
User balances are stored in crypto. Two options:
On-chain wallets. Each user has an on-chain address (or virtual account in segregation system). USDC is stored as-is, conversion happens at transaction time.
Off-chain accounting. User funds are held in a common pool, internal ledger tracks shares. Cheaper operationally, but harder to position regulatorily.
Conversion at Transaction
Key moment: Visa authorization happens in 1-3 seconds. During this time you need to:
- Get authorization request from Marqeta (amount in USD)
- Check user's USDC/ETH balance
- Lock (hold) the required crypto amount
- Respond approve or decline
Exchange rate conversion — pre-committed: at authorization the rate is fixed and amount is held. At settlement (usually T+1) actual conversion happens. This means you need a buffer for rate fluctuations or instant settlement.
interface AuthorizationRequest {
cardId: string;
transactionAmount: number; // in USD
merchantCategory: string;
merchantName: string;
transactionId: string;
}
async function handleAuthorization(req: AuthorizationRequest): Promise<AuthDecision> {
const user = await db.getUserByCardId(req.cardId);
// Get current rate with small slippage buffer (0.5%)
const cryptoPrice = await priceService.getPrice(user.preferredCrypto, 'USD');
const requiredCrypto = (req.transactionAmount / cryptoPrice) * 1.005;
const balance = await walletService.getBalance(user.id, user.preferredCrypto);
if (balance < requiredCrypto) {
return { decision: 'DECLINE', reason: 'INSUFFICIENT_FUNDS' };
}
// Lock funds
await walletService.hold(user.id, user.preferredCrypto, requiredCrypto, req.transactionId);
return { decision: 'APPROVE', authorizedAmount: req.transactionAmount };
}
Regulatory Requirements
Crypto card is one of the most regulatory complex crypto services. Requirements depend on jurisdiction:
EU (MiCA + EMD2/PSD2): need Electronic Money Institution (EMI) license for issuing electronic money, or working through a licensed partner.
UK (FCA): Electronic Money Institution authorisation or Small Electronic Money Institution.
USA: Money Transmitter License (MTL) in each state, or working through licensed partner. Obtaining MTL in 50 states — 1-2 years and $1-3M.
Minimum path: register EMI license in Lithuania or Estonia (EU), use passporting for entire EU. In parallel partner with Marqeta for physical infrastructure.
KYC/AML
Full KYC is mandatory:
- Identity verification (passport + selfie) — Sumsub, Jumio, Onfido
- Sanction list check (OFAC, EU, UN) — Chainalysis, Elliptic
- Transaction monitoring (AML scoring) — Chainalysis KYT
- Enhanced Due Diligence for large transactions
Physical vs Virtual Card
Virtual card — just credentials (number, CVV, expiry). For online purchases. Cheaper to produce ($0.5-2 per card), issued instantly.
Physical card — plastic with chip. Requires card printer and personalization. Production cost $3-8 + delivery. Issuance time 1-2 weeks.
Most crypto cards start with virtual, adding physical on demand.
Technical Architecture
Mobile/Web App (React Native / Next.js)
↓
API Server (Node.js + TypeScript)
├── Card Management Service
│ └── Marqeta API (cards, limits, statuses)
├── Authorization Handler (webhook from Marqeta)
│ └── < 500ms response time (critical!)
├── Crypto Custody Service
│ ├── Internal ledger (PostgreSQL)
│ └── On-chain settlement (Alchemy + ethers.js)
├── Price Oracle Service
│ └── Chainlink + CoinGecko fallback
├── KYC Service
│ └── Sumsub API
└── AML/KYT Service
└── Chainalysis API
Crypto Cashback Program
Differentiating feature: cashback is issued in crypto (native project token, BTC or USDC). Requires:
- Smart contract for issuance (if cashback in own token — ERC-20 with minting rights for system)
- Accumulation and withdrawal mechanism
- Transparent rules (merchant categories, % cashback, limits)
Supported Networks and Assets
Launch usually starts with USDC (stablecoin, no currency risk when holding). Then ETH and BTC are added. Each new asset requires separate price oracle and currency risk management.
Multi-chain support is important: USDC on Polygon is cheaper in transactions than on Ethereum mainnet.
Timeline and Estimate
| Phase | Timeline |
|---|---|
| Partner selection (BIN sponsor, EMI) | 2-4 months |
| Technical MVP development | 4-6 months |
| KYC/AML integration | 1-2 months |
| Testing and compliance review | 2-3 months |
| Soft launch (virtual cards) | T+9-15 months |
Technical part development (without regulatory path) — 4-6 months. Full launch including licensing — 12-18 months.







