What is PSBT (partially signed Bitcoin transaction)?

A standard file format for a transaction that is passed between devices to collect signatures before broadcast.

Not yet verifiedHow we verify

3 min read

In this entry

A standard file format for a transaction that is passed between devices to collect signatures before broadcast.

BIP-174 defines it so that a wallet, a hardware signer, and a coordinator made by three different companies can cooperate on one transaction (source: BIP-174). It is the normal workflow for multisig wallets and for air gapped wallet setups.

Before the standard, a hardware wallet from one maker generally could not sign a transaction constructed by another maker's software. Each vendor had its own format. The result was lock-in exactly where lock-in is most dangerous, because a wallet you cannot recover with someone else's software is a wallet that depends on one company continuing to exist.

How it works

A PSBT separates the three jobs a transaction requires, so different devices can do each one.

  1. Creator. A wallet builds an unsigned transaction: which utxos to spend, which outputs to create, and what fee. It records the information a signer needs to verify each input.
  2. Signer. One or more devices add signatures. Each signer sees the full details, including outputs and fee, and signs only what it holds keys for. It never receives the private keys of any other signer.
  3. Finalizer. Once enough signatures are present, the transaction is assembled into its final broadcastable form and sent to the network.

The file travels between these roles by whatever means the setup uses: a QR code shown on screen and scanned, a microSD card, a USB cable, or a file emailed between two people in a multisig arrangement. Because the format is standardized, the devices at each step need not come from the same vendor (source: BIP-174).

Example

An air-gapped signing flow, step by step. Your laptop wallet, which is online and knows your balances through a watch only wallet, builds a transfer of 0.05 BTC to an exchange deposit address with a fee of 5,000 satoshis. It displays the PSBT as a QR code.

Your signing device, which has never touched a network, scans the code. Its screen shows the destination address, the amount, and the fee, computed from the PSBT itself rather than from what the laptop claims. You compare the address against the exchange page character by character, confirm on the device, and it displays a signed PSBT as a new QR code. The laptop scans it back and broadcasts.

If malware on the laptop had swapped the destination address, the signing device would have shown the attacker's address, and you would have seen it before approving.

Why it matters when you buy

The moment after buying, when you move coins off an exchange, is where the largest single-transaction losses happen, usually to a substituted address. Verifying the destination on a device that malware cannot reach is the defense, and PSBT is what makes that workflow possible across vendors. Moving crypto off an exchange, hardware wallet setup, and multisig basics cover the practice.

multisig — several signatures on one transaction; air gapped wallet — signing on an offline device; hardware wallet — the usual signer; watch only wallet — builds without keys; utxo — the inputs being spent; descriptor wallet — describes which keys a wallet holds.

Questions

Do I need to understand PSBT to use a hardware wallet?

No. Most wallet software handles it invisibly. It matters when you set up multisig, use air-gapped signing, or want to recover a wallet with software from a different vendor.

Is a PSBT sensitive?

It contains no private keys, so an unsigned PSBT leaks transaction details rather than the ability to spend. A fully signed one is broadcastable, so treat it as the transaction itself once complete.

Why does this matter for recovery?

Because the format is a public standard, a wallet built with one vendor's tools can generally be spent using another's. That removes the dependency on one company continuing to ship working software.