BTCPay Server

Announcement:

Keystone is already compatible with BTCPay Server but it still hasn’t completed the development of its version to become compatible with our Keystone wallet. When BTCPay Serve releases a compatible version, we will be sure to issue an announcement and update our tutorials accordingly.

With firmware versions V1.1.1 (BTC-Only) or newer running on Keystone Essential or Pro , you can set BTCPayServer as a watch-only wallet that functions as the companion app for Keystone Essential or Pro.

I. Preparation:

1. Firmware version V1.1.1 (BTC-Only) or newer running on Keystone Essential or Pro.

(Please read How to upgrade firmware for more details.)

2. Computer/RasberryPi/Server Environment with BTCPayServer installed/enabled.

3. MicroSD card (FAT32 format with capacity NOT exceeding 512GB).

How to Format a MicroSD Card to FAT32?

II. Creating a BTCPayServer Watch-Only Wallet (BTC-Only)

1. In the Keystone hardware wallet, go to [Settings], touch [Watch-Only Wallet], select BTCPay Server], then touch [Next].

2. Touch [Display QR Code].

3. Run BTCPayServer on your computer, click [STORES > Create a new store]. Set the name of the new store and click [Create].

4. Click [Setup] under "Wallet - BTC". Click [Import from...] and select [a QR Code].

5. Scan the QR code shown on the Keystone device and click [Submit > Confirm].

6. Select [WALLETS] tab and check the paired watch-only wallet.

Tips: If your device has issues with the camera, you can use a microSD card to create a BTCPay Server watch-only wallet.

1) Insert the microSD card into the Keystone device. Go to [Settings], touch [Watch-Only Wallet], select BTCPay Server], then touch [Next > Display QR Code].

2) Touch [touch here to export the file with microSD > Export]. The file has been saved in the microSD card.

3) Take out the microSD card out from the Keystone and insert into your device.

4) Run BTCPayServer on your instance, click [STORES > Create a new store]. Set the name of the new store and click [Create].

5) Click [Setup] under "Wallet - BTC". Click [Import from...] and select [a wallet file(Electrum, Wasabi, Keystone, Coldcard].

6) Click [Choose File]. Select the txt file exported from the Keystone. Click [Submit > Confirm].

7) Select the [WALLETS] tab and check the paired watch-only wallet.

III. Sending and Receiving Assets with BTCPayServer

A. Receiving BTC

Users can choose the Keystone or BTCPayServer to receive BTC. But it’s recommended to use Keystone to receive due to safety concerns. (This way you can trustlessly verify that the receiving address is actually correct or not, because the connected instance is prone to malware.)

1. On Keystone: Touch [Addresses] to display the receiving addresses.

2. On BTCPayServer: Click [WALLETS - Manage - Receive-Generate BTC Address] to display the receiving addresses.

B. Sending BTC

1. Create a Transaction with BTCPayServer

1) Run BTCPayServer. Click [WALLETS > Manage > Send] in each step.

2) Enter the destination address and amount. Click [Sign with…] and select [... a wallet supporting PSBT].

3) Export unsigned transaction data.

- Via QR code: Click [Other actions...] and select [Show QR]. Show the unsigned transaction data in QR code format.

- Via microSD card: Click [Other actions...] and select [Download]. Save the unsigned transaction data as a .psbt file to the root directory of the microSD card.

2. Sign with Keystone Hardware Wallet

- Via QR code

1) Touch the [Scan] icon, then scan the QR code shown on BTCPayServer.

2) Touch [Sign] and enter the password to authorize.

- Via microSD card

1) Insert the microSD card into the Keystone and power on the device.

2) Touch the [MicroSD card] icon, then find and open the unsigned transaction file.

3) Touch [Sign] and enter the password to authorize.

4) Touch [touch here to export the file with microSD > Export]. The signed transaction file will be saved to the root directory of the microSD card.

3. Broadcast with BTCPay Server

- Via QR code

1) Click the "camera" icon and scan the QR code shown on the Keystone. Click [Submit].

2) Click [Other actions...] > [Review]. Confirm the transaction details and click [Broadcast it] to broadcast the transaction to the blockchain.

- Via microSD card

1) Take the microSD out of your Keystone and insert it into the computer/device.

2) Click [PSBT > Choose File], find and open the signed transaction file in the root directory of the microSD card. Click [Decode > Other Actions > Review] in each step. Confirm the transaction details and click [Broadcast it] to broadcast the transaction to the blockchain.

3) Optional: Verify your transaction with a block explorer like blockstream.info.

Last updated