Skip to main content
BVNK

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.

FeatureCustodial walletsSelf-custody wallets
Key ownershipBVNK holds keysCustomer holds keys (via HD master key)
Wallet creationOne wallet per currencyOne wallet per currency and network
Network selectionAutomaticExplicit network field required
Key exportNot applicableSupported via envelope encryption
Asset safeguardingBVNK safeguards assets per applicable regulationsCustomer responsible for own assets

Supported currencies and networks​

Self-custody wallets currently support the following assets and networks:

NetworkAssetsNative gas tokenAddress derivation
EthereumUSDC, USDT, ETHETHShared with Arbitrum, Base, Polygon, and Binance
ArbitrumUSDCETHShared with Ethereum, Base, Polygon, and Binance
BaseUSDCETHShared with Ethereum, Arbitrum, Polygon, and Binance
PolygonUSDC, USDT, POLPOLShared with Ethereum, Arbitrum, Base, and Binance
BinanceUSDC, USDT, BNBBNBShared with Ethereum, Arbitrum, Base, and Polygon
SolanaUSDC, USDT, SOLSOLUnique address
TRONUSDT, TRXTRXUnique 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​

Was this page helpful?