Overview
Self-custody wallets are non-custodial crypto wallets where customers control their own keys. Unlike standard BVNK wallets (where BVNK holds the keys on behalf of the customer), a self-custody wallet is derived from an HD master key
(a BIP39 seed phrase) stored inside a hardware vault enclave. There is exactly one master key per customer, and every self-custody wallet for that customer is derived from that key via a BIP44 derivation path.| Feature | Custodial wallets | Self-custody wallets |
|---|---|---|
| Key ownership | BVNK holds keys | Customer holds keys (via HD master key) |
| Wallet creation | One wallet per currency | One wallet per currency and network |
| Network selection | Automatic | Explicit network field required |
| Key export | Not applicable | Supported via envelope encryption |
| Asset safeguarding | BVNK safeguards assets per applicable regulations | Customer responsible for own assets |
Supported currencies and networks
Self-custody wallets currently support the following assets and networks:
| Network | Assets | Native gas token | Address derivation |
|---|---|---|---|
| Ethereum | USDC, USDT, ETH | ETH | Shared with Arbitrum, Base, Polygon, and Binance |
| Arbitrum | USDC | ETH | Shared with Ethereum, Base, Polygon, and Binance |
| Base | USDC | ETH | Shared with Ethereum, Arbitrum, Polygon, and Binance |
| Polygon | USDC, USDT, POL | POL | Shared with Ethereum, Arbitrum, Base, and Binance |
| Binance | USDC, USDT, BNB | BNB | Shared with Ethereum, Arbitrum, Base, and Polygon |
| Solana | USDC, USDT, SOL | SOL | Unique address |
| TRON | USDT, TRX | TRX | Unique address |
Outgoing payments require native gas tokens (ETH, POL, BNB, SOL, or TRX) to cover network fees. BVNK does not abstract gas fees, so the wallet must hold sufficient native tokens before sending. To estimate the network fee for a payout, send the POST /api/v1/pay/estimate request: the response includes networkFeePredictedAmount.
Current limitations
Self-custody wallets support:
- Receiving direct deposits to the wallet's blockchain address
- Sending same-currency payouts (for example, USDC to USDC)
Self-custody wallets do not currently support:
- Payment Links or Channels
- Currency conversions
- Internal transfers between wallets
- Payment webhooks for individual transactions
How wallets are organised
A self-custody wallet is created for a specific currency and network. For example, USDC on Ethereum and USDC on Polygon are separate wallets. When you create a customer's first self-custody wallet, BVNK provisions their master key if they do not already have one. Later wallets for that customer are derived from the same key.
To create a wallet, select a self-custody processing profile and specify the network. See Self-custody wallets for the setup steps, supported networks, and wallet operations.
What's next
- Activate self-custody wallets for a customer and create their wallets for each currency and network.
- Learn how BVNK protects key material with envelope encryption and operation safeguards.
- Manage a customer's key pair: list, export, import, and delete it.
- Review the partner and customer responsibilities for handling key material.