In recent years, PSBT has become one of the most popular ways to add an extra layer of protection to bitcoins. As described in Andrew Chow’s BIP 174, this Bitcoin standard refers to Partially Bitcoin Transactions. Once enabled, PSBT separates transaction broadcasting from transaction signing. The process very much resembles a multisig setup, except that a signature is required from a separate wallet before allowing the funds to get broadcast across the network.
Coldcard was the first hardware wallet to implement PSBT – and through it, the device managed to function without requiring a connection to a computer. This “airgapped” setup soon increased in popularity among bitcoiners who became aware of their potentially compromised computers and the possibility of using faulty USB cables. Even though the amount of security being added through this airgap is debatable, setting up PSBT does make the bitcoins more difficult to spend – to some HODLers, this is an extra impediment which prevents them from panic selling.
Ever since, other hardware wallet manufacturers (KeyStone, Foundation Devices) and DIY projects (Specter DIY, Seedsigner, Bowser Wallet) have implemented PSBT as a way to create simple and secure devices that are compatible with existing Bitcoin wallets and don’t need desktop software of their own. It isn’t just convenient for the developers to not create and maintain a friendly platform like Trezor Suite, BitBox Base or Ledger Live, it’s also more secure to rely on desktop and mobile wallets that already exist, are being used every day and have been scrutinized heavily by hackers and code reviewers.
Wasabi is one of the desktop Bitcoin wallets that work with every PSBT hardware wallet. Not only that, but thanks to the Tor routing and trustless onboarding, it’s also the most private desktop wallet for your Bitcoin transaction signing device. There’s a small detail that you should consider, though: due to PSBT being a universal standard, Coldcard’s first adopter status, and the lack of a direct connection between the hardware wallet and the computer, all PSBT signing devices will be recognized as Coldcards.
Now that we got these details out of the way, let’s talk about how you can send a Bitcoin transaction in Wasabi Wallet, by using the PSBT standard. There are four steps involved: registering the master public key file to Wasabi, building a transaction, signing the transaction, and broadcasting this transaction to the Bitcoin network. The first step needs to be completed only once for every wallet setup and is unique for every BIP39 backup you create with your device. So, in theory, you can have an unlimited amount of PSBT setups for every hardware wallet, but you can only use one at a time.
Furthermore, it should be mentioned that in order to enable communication between the hardware wallet and Wasabi, you need a durable SD card. You don’t have to purchase one which can hold big files, but you do need ruggedness and the ability to write and rewrite many times. Though any SD card of any size larger than a few megabytes works just fine, the industrial-grade ones will last longer and perform more predictably over the years.
So first of all, you need to insert the SD card in your hardware wallet and export the xpub file to it. This is the only part which varies according to the hardware wallet manufacturer. For example, in the Coldcard interface you need to access the “Micro SD Card” menu, pick “Export Wallet”, and then select “Wasabi Wallet” from the list. On the KeyStone, you need to choose Wasabi as your watch-only wallet, and then export the wallet. This pairing is even easier to do on the Foundation Devices Passport: from the main menu you go to “Pair Wallet” and choose Wasabi, insert the SD card and follow the file generation process.
Once you have the .json file written by your hardware wallet to the SD card, you insert it inside your computer and open Wasabi Wallet. Then from the “Wallet Manager” tab (on the top-left side of the interface) you pick “Hardware Wallet”. The next step is to press the “Import Coldcard” button on the bottom right corner and point the wallet to the public key file that you stored on the SD card.
As previously mentioned, it really doesn’t matter if your hardware wallet is a KeyStone, a Passport, or a Seedsigner. All of them use the exact same file format, so the “Import Coldcard” button shouldn’t deter you from using this PSBT function only because your hardware wallet is of a different brand.
After you import your public key file into Wasabi Wallet, you’re going to see how the new “Coldcard” gets added to the “Wallet Explorer” menu on the right side of the screen.
Double click it or right click and select “Open Wallet” from the drop-down menu. Now we must build the transaction. From the same “Wallet Explorer” side of the Wasabi menu, click on “Advanced” – it should be just below your wallet of choice. Then pick “Build Transaction”.
Now you will have to select the Bitcoin UTXO that you want to spend, designate the recipient of your transaction, set the fee and then finally click the “Build Transaction” button. It’s the same as sending a regular transaction, except that instead of broadcasting the instruction to the Bitcoin network, it generates a PSBT file that needs to be signed with your hardware wallet.
The next step is to insert the SD card back inside your hardware wallet’s port and use the internal user interface to validate the transaction with a signature. On the device’s screen, you should see information about the transaction inputs, outputs, amounts and fees. So make sure that you verify everything before you proceed with the signature. Once again, the way of generating the signed PSBT file varies on every device. For example, the Foundation Devices Passport has the “Sign with Micro SD” option in the main menu and everything is very simple. On the Coldcard, you must choose “Ready to Sign” and follow the on-screen instructions. And on the KeyStone you simply touch the screen in the area where the BTC address gets displayed and pick the right unsigned transaction file.
This part is very important, as you verify all the details about the transaction and can either sign it or invalidate it. The funds don’t leave your wallet until you sign the transaction and broadcast it. So even if you do sign it, one final step is still required.
Insert the SD card back into your computer. Now you should find a PSBT file which has “signed” in the name. What you need to do next is open it with Wasabi and broadcast it to the entire Bitcoin network to make the transaction possible. Go to the “Tools” menu at the top of the Wasabi wallet window, and pick “Transaction Broadcaster”. Then click the “Import Transaction”, check the input data one last time on the screen, and then finally click on “Broadcast Transaction”. Congratulations, you have just sent a PSBT transaction with Wasabi, while also boosting your network-level privacy and using an airgapped setup for your hardware wallet.
PSBT is a complex and debated topic among bitcoiners. Like everything else, it can have both advantages and disadvantages. Whether or not you choose to use it depends entirely on your HODL strategy and your threat model. To hear opinions in favor of the setup, listen to Specter creator Stepan Snigirev on the Bitcoin Takeover Podcast. Another similar opinion is shared by Blockstream Chief Architect Lawrence Nahum. To hear criticism about the use of PSBT in your setup, listen to ShiftCrypto developer and researcher Benma, as well as former Bitcoin Core developer Peter Todd.