We’re excited to announce a freshly-baked feature from our coding kitchen – BTCPay Vault. (opens new window) Prepared by our Chef de Cuisine, Nicolas Dorier, the vault is a delicious desktop application which allows communication between your hardware wallet and BTCPay using its full Bitcoin node (opens new window) providing a richer user experience without sacrificing privacy and security.
# Why?
When you launch a BTCPay Server, the stack, among other things (opens new window), contains a full Bitcoin node. To receive funds through BTCPay, you have to configure your store with an _extended public ke_y(xpub..), which is then used to generate addresses.
However, to spend the received funds from your wallet, you need access to your private keys, which we do not store on BTCPay. That required users to use an external wallet, and due to severe limitations of almost every wallet on the market(gap limit, trusted third-parties, no xpub export support, etc), a majority of users often opted to use wallet solutions such as Electrum and leak their sensitive financial information to a third party server.
That's why BTCPay created an internal wallet system (opens new window) many months ago that allows you to spend your funds through direct integrations with the Ledger Nano S, ColdCard. This also allowed you to import your public key without requiring technical knowledge.
Enters the BTCPay Vault (opens new window), a cross-platform desktop application that makes hardware wallet experience not only smoother and faster, but also extends compatibility to many other devices.
# How does it work?
The hardware wallet integration is composed of two parts:
- BTCPayServer.Hwi (opens new window): An easy to use library wrapping the command line interface of the hwi project (opens new window).
- BTCPayServer.Vault (opens new window): A simple local web server providing access to the hardware wallet physically connected to your computer via HWI.
In laymen words, BTCPay Vault is a separate app, locally hosted on your own PC, which BTCPay Server connects to and asks for permission. Once permission is granted, BTCPay is able to integrate with any hardware wallet connected to your PC. You can import your wallet and spend incoming funds with a simple confirmation on your device, with your keys never leaving your hardware device, with all funds being validated against your own Bitcoin full node and no data leakage.
# Getting Started with BTCPay Vault
# Connecting your wallet to a store
Setting up BTCPay Vault is quite easy. You only need to have already set up BTCPay Server.
- Download BTCPay Vault (opens new window)
- Install BTCPay Vault on your PC (Windows, MacOS or Linux)
- Open BTCPay Vault app.
- Plug in the hardware wallet and make sure it's in wake up state
- Go to your BTCPay Server's Store > General Settings > Derivation Scheme > Import from the Vault
- Grant the permission
- Your public key will automatically be imported in the store and configured to an appropriate format
- Validate that address shown on BTCPay is the same as the one on your device
- Save
# Spending funds with BTCPay Wallet
Once you've received funds to your wallet and you decide to spend them, you can sign the transaction with your hardware wallet, all inside BTCPay Server.
- Open BTCPay Vault app on your PC
- Plug in the hardware wallet and make sure it's in wake up state
- In BTCPay Server, go to > Wallets > Manage > Send
- Fill in the
Destination address
and theAmount
- Select
Sign with the Vault
- Verify the transaction on your hardware wallet and confirm it
- Broadcast the transaction
# Supported Hardware Wallets
At this moment, the hardware wallet integration (HWI) supports the following devices:
- ColdCard
- Digital BitBox
- KeepKey
- Ledger Nano S
- Ledger Nano X
- Trezor Model T
- Trezor One
There you have it, using a full node with a hardware wallet in a few easy steps. We hope the Vault will help you transact more privately. If you have any feedback or face any issues, please let us know chat (opens new window).
If you're developer, you can use the BTCPay Vault with your own project as it is not dependent on BTCPay and can be modified to suit your needs.
We'd like to thank all our community members that helped us test the vault in the wild. Special kudos to Wasabi Wallet (opens new window) and the HWI (opens new window) for creating the software that made BTCPay Vault possible.