Quickstart
This quickstart takes you from zero to your first virtual card in five steps. It assumes you already have partner credentials; if you don't, contact [email protected] to set up your program.
This page is part of the reference of the first version of the Web3Card API, kept here for reference. API v1 does not take new integrations: API v2 replaces it, and the platform today works as described in the rest of this manual.
1. Get your API key
Every request to the partner API is authenticated with your API key in the Authorization header:
curl https://api.web3card.dev/v1/ping \
-H "Authorization: Bearer w3c_live_xxxxxxxxxxxxxxxx"
Sandbox keys are prefixed w3c_test_ and operate against testnet vaults. No real funds move in sandbox mode.
2. Create a user
Users are the cardholders of your program. Create one with their wallet address and email:
curl -X POST https://api.web3card.dev/v1/users \
-H "Authorization: Bearer w3c_test_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"walletAddress": "0x71C2a4f3b7c48d19D4a2e9Eb0cE3606eB48a3a4F",
"chain": "polygon"
}'
3. Complete KYC
Cardholders must pass identity verification before a card can be activated. Request a KYC session link and redirect your user to it:
curl -X POST https://api.web3card.dev/v1/users/usr_9f4c/kyc/session \
-H "Authorization: Bearer w3c_test_xxxxxxxxxxxxxxxx"
You will receive a kyc.approved webhook when verification completes. See Users & KYC.
4. Deploy the user's vault
Each card is backed by its own multisig smart-contract vault. Deploy it on the user's chain:
curl -X POST https://api.web3card.dev/v1/vaults \
-H "Authorization: Bearer w3c_test_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "userId": "usr_9f4c", "chain": "polygon", "currency": "USDC" }'
5. Create a virtual card
curl -X POST https://api.web3card.dev/v1/cards \
-H "Authorization: Bearer w3c_test_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "userId": "usr_9f4c", "type": "virtual" }'
The response includes the card id and its current status:
{
"id": "card_3b7c",
"userId": "usr_9f4c",
"type": "virtual",
"status": "active",
"last4": "1234",
"network": "visa",
"createdAt": "2026-07-19T14:00:00Z"
}
Once the vault holds a balance, the card is ready to spend. Continue with the top-ups guide or subscribe to webhooks for real-time events.