Vaults
The vault is the heart of Web3Card's non-custodial design. Every card is backed by its own multisig smart-contract vault, deployed on the cardholder's chosen chain.
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.
How a vault works
- Individual. One vault per card. Funds are never pooled with other users or with the program operator.
- Owned by the user. The cardholder's wallet is the vault owner. The Web3Card settlement operator is a co-signer authorized exclusively to execute settlements for card payments the user made.
- Transparent. The vault is a contract on a public chain. Every settlement is a verifiable on-chain transaction.
What the vault holds
The vault holds the card's spendable balance in the program's settlement currency, plus optionally your project token when token top-ups are enabled (see Chains & Tokens).
Settlement
When a cardholder pays with the card, the payment is authorized in real time against the vault balance. Settlement then moves the authorized amount from the vault through the settlement operator to the issuing bank as a standard Visa settlement. The full path is described in the transaction lifecycle.
Withdrawals
The cardholder can withdraw from their vault at any time by signing a withdrawal with their owner wallet:
POST /vaults/{id}/withdrawals: prepare the withdrawal transaction data- The user signs and submits it with their own wallet
Withdrawal availability is only reduced by amounts already authorized but not yet settled.
Spending limits on-chain
Daily card limits are mirrored by the vault contract, giving a defense-in-depth guarantee: even a compromised authorization path cannot settle more than the on-chain limit allows.
Vault API
Deployment, configuration, balance, and withdrawal endpoints are documented in the Vaults API reference.