Skip to content
Satostar
Menu

What is a PSBT, and why air-gapped wallets depend on it

The partially signed transaction format that lets one device prepare a payment and another sign it, which is how hardware wallets and multisig work together.

Published 3 min read

In short

A PSBT, or partially signed Bitcoin transaction, is a standard file format defined in BIP174 for a transaction that is not yet fully signed. It carries the transaction plus the extra information a signer needs, so that the device holding the keys does not have to be online or trust the computer that built the payment.

Air-gapped hardware wallets pass PSBTs by memory card or QR code; multisig wallets pass the same PSBT between co-signers until enough signatures are collected. BIP370 later defined a second version of the format.

A Bitcoin transaction has to be signed with private keys before the network accepts it. If the keys sit on a device that never touches the internet, something has to carry the unsigned transaction to that device and the signed one back. For years every wallet did this its own way. PSBT is the shared format that replaced those private formats.

What does BIP174 define?

BIP174 describes a binary format for a transaction that is still being worked on, together with roles that different programs or devices can take:

Role in BIP174 What it does
Creator Builds the unsigned transaction
Updater Adds information signers need: the outputs being spent, scripts, key derivation paths
Signer Checks the transaction and adds its signature
Combiner Merges PSBTs that carry different signatures for the same transaction
Finalizer Assembles the complete signatures into the final form
Extractor Produces the network-ready transaction to broadcast

One program often plays several roles. A desktop wallet is typically creator, updater, finalizer and extractor; a hardware wallet is the signer.

Why does it matter for a hardware wallet?

The extra data in a PSBT lets the signing device check what it is signing on its own. It can see which of its own keys are involved, which outputs are change going back to the same wallet and which are payments out, and show the user the real destination and amount. That is what makes it reasonable to sign on a device that trusts nothing the computer says.

What is air-gapped signing?

In air-gapped signing, the hardware wallet has no cable or wireless link to the computer. The computer writes the PSBT to a memory card or shows it as a sequence of QR codes; the device reads it, shows the details, signs after you confirm, and passes the signed PSBT back the same way. The device can stay physically isolated, which suits cold storage.

How does multisig use it?

In a multisig wallet, each co-signer holds a different key. One person creates the PSBT and passes it to the first co-signer, who signs and passes it on, until the required number of signatures is present. Co-signers can also sign copies in parallel, and a combiner merges them. Because every party uses the same format, the co-signers can use different wallet software and hardware.

Is a PSBT file sensitive?

It contains no private keys, so it cannot be used to steal coins. It does reveal the transaction being built, the amounts, the addresses involved and, through the key paths, information about the wallet. Treat it like a bank transfer form: fine to pass between your own devices and co-signers, not something to post publicly. A PSBT that comes back from a signer should be checked in the wallet before broadcasting, so that a swapped output would be noticed.

What changed with version 2?

BIP370 defined PSBT version 2, which stores the transaction’s parts as separate fields instead of embedding one fixed unsigned transaction. That allows inputs and outputs to be added after creation, which helps when several people build one transaction together. Version 0 from BIP174 remains widely used, and wallets state which versions they support.

Bitcoin Core supports PSBTs through its command-line and graphical interfaces; its documentation lists the commands for each role.

Sources

  1. BIP174: Partially Signed Bitcoin Transaction format
  2. BIP370: PSBT version 2
  3. Bitcoin Core: PSBT documentation

More in Wallets