We’re excited to announce a freshly-baked feature from our coding kitchen – BTCPay Vault. 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 providing a richer user experience without sacrificing privacy and security.

Why?

When you launch a BTCPay Server, the stack, among other things, contains a full Bitcoin node. To receive funds through BTCPay, you have to configure your store with an extended public key(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 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, 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: An easy to use library wrapping the command line interface of the hwi project.

BTCPayServer.Vault: 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 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 the Amount 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.

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 and the HWI for creating the software that made BTCPay Vault possible.