PSBT (Partially Signed Bitcoin Transaction) is a standard container for incomplete transactions plus the metadata signers need (UTXO info, paths, scripts, partial signatures).
Complete Step 1 // Required reading in the study plan above, then continue here. This closes Development.
Step 2 — Core idea: roles and interoperability
Hardware wallets, multisig cosigners, and watch-only constructors should not invent proprietary blob formats. PSBT is the interoperability layer.
Analogy: A shared clipboard for a group project — one person drafts, others add signatures in the right places, someone finalizes, then you submit.
Loading diagram…
Done when: You can name the PSBT roles and why watch-only + hardware needs this format.
Step 3 — Try it: create → process → finalize (lab)
Fund a wallet first if needed, then:
ADDR=$(bitcoin-cli -regtest getnewaddress)
bitcoin-cli -regtest walletcreatefundedpsbt '[]' "{\"$ADDR\":0.01}"
# Then walletprocesspsbt <psbt> and finalizepsbt <psbt>Map which command acted as creator, signer, and finalizer in your run.
Common mistakes
- Asking hardware to sign without verifying outputs on the device screen
- Mixing finalized and unfinalized blobs in your database
- Forgetting change outputs belong to your descriptor
Done when: Lab evidence (PSBT RPC excerpts + role sentence + source) is complete. Complete the chapter quiz when prompted.
Next lesson
Mini Wallet Project — apply UTXOs, descriptors, regtest, and PSBT in one CLI.