Skip to main content
BVNK

Overview

Beta

Self-custody wallets are currently in beta and available to eligible BVNK customers. Some features may change as we continue to improve it. Please review the documentation and endpoints carefully, test everything in the sandbox, and reach out to the Solutions team if you need help.

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.

Self-custody wallets let your customers receive crypto on-chain and send stablecoin payouts across supported networks. BVNK manages the key infrastructure and blockchain operations, so you can offer self-custody wallets without developing this infrastructure.

BVNK cannot move customer funds independently. Every payout requires an authenticated instruction from your platform.

The table below compares wallet types:

FeatureCustodial walletsSelf-custody wallets
Asset safeguardingBVNK safeguards assets per applicable regulationsCustomer is responsible for their own assets
Key managementBVNK manages wallet keys as custodianBVNK protects the customer’s master key inside a secure enclave; the customer can export their key material
Wallet structureOne wallet per currencyOne wallet per currency and network
OnboardingCustomer onboarding and KYC requirements applyCustomer accepts the Self-Custody Agreement

What you can build​

  • Embedded crypto wallets.

    Create self-custody wallets for your customers within your product. Customers can receive and hold supported crypto assets without a separate wallet application.

  • Stablecoin payouts.

    Send same-currency payouts from a customer’s self-custody wallet using BVNK’s payment APIs.

    For example, send USDC from a USDC wallet to an external address on a supported network.

  • Built on BVNK’s existing APIs.

    Self-custody uses BVNK’s core wallet and payment endpoints, with additional configuration and key-management features specific to self-custody.

Supported currencies and networks​

Self-custody wallets support the following assets and networks:

NetworkSupported assetsNetwork fee token
EthereumUSDC, USDT, ETHETH
ArbitrumUSDCETH
BaseUSDCETH
PolygonUSDC, USDT, POLPOL
BinanceUSDC, USDT, BNBBNB
SolanaUSDC, USDT, SOLSOL
TRONUSDT, TRXTRX

Each self-custody wallet is created for a specific currency and network combination. For example, USDC on Ethereum and USDC on Polygon are separate wallets for the same customer.

Network fees​

Outgoing blockchain transactions require the wallet to hold enough of the network’s native token to cover network fees. For example, sending USDC on Ethereum requires sufficient ETH in the wallet.

To estimate the network fee for a payout, send the POST /api/v1/pay/estimate request. The fee appears in the networkFeePredictedAmount value of the response.

Security​

BVNK generates and protects customer key material inside a secure enclave. Private key operations, including transaction signing, occur within this environment in response to authenticated instructions from your platform.

Key import and export use additional encryption and operational safeguards for enhanced security.

See Security architecture for details on key generation, transaction signing, encryption, key management, IP allowlisting, and deletion safeguards.

Current limitations​

Self-custody wallets currently support:

  • Receiving funds directly to the wallet's blockchain address.
  • Sending funds as same-currency payouts on supported networks, such as 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

Self-custody requires customers to be created specifically for this use case. Existing customers using other BVNK products cannot yet be activated for self-custody.

How it works​

  1. Activate self-custody.

    Your customer accepts the BVNK Self-Custody Agreement.

  2. Create a wallet for a supported currency and network.

    When you create a customer’s first self-custody wallet, BVNK provisions their master key. Additional self-custody wallets for the same customer are derived from this key.

  3. Receive funds.

    Anyone can send supported assets directly to the wallet’s blockchain address.

  4. Send funds.

    Create a same-currency payout through the BVNK payment API.

    BVNK processes the authenticated instruction, signs the blockchain transaction, and broadcasts it to the network.

See Set up self-custody wallets for the complete implementation flow.

What's next​

Was this page helpful?