---
url: /docs/stablecoin/store.md
description: >-
  Hold stablecoins in a BlindPay-managed wallet or register an external,
  customer-controlled blockchain wallet.
---

Once your customer holds stablecoins, they need somewhere to keep them. BlindPay supports two options, and you can mix both across different customers or even for the same customer.

A **managed wallet** (`bl_...`) is a BlindPay-custodied wallet: BlindPay creates it, holds the private keys, and your customer interacts with the balance through your product rather than a browser extension or a signed transaction. An **external blockchain wallet** (`bw_...`) is the opposite: your customer already controls the wallet (self-custodied), and you only register its address with BlindPay so it can receive stablecoin transfers or authorize a payout.

## Which to use

| | Managed wallet (`bl_`) | Blockchain wallet (`bw_`) |
| --- | --- | --- |
| Custody | BlindPay-custodied | Customer-controlled (non-custodial) |
| Address | Generated by BlindPay | Supplied or signed by the customer |
| Best for | Products where you don't want customers managing keys | Customers who already have their own wallet |
| Sending funds | No client-side signing | Requires signature, approval, or delegation depending on chain |
| Availability | Beta, limited chain support | Generally available |

## In this section

* [Managed wallet](/stablecoin/wallets): create a `bl_` wallet, check its balance, and receive stablecoins directly into it.
* [Blockchain wallet](/stablecoin/blockchain-wallets): register a `bw_` wallet securely (signed message) or by address, across supported chains.

## Related

* [On-ramp](/stablecoin/receive): accept fiat and credit a wallet
* [Off-ramp](/stablecoin/send): pay out fiat from a wallet's balance
* [Cross-chain transfer](/stablecoin/transfer): move stablecoins between wallets
* [Supported chains](/kb/supported-chains): chain and token matrix
