Feedback
Sign in./start

Site navigation

Theme

Learn

  • Roadmaps

Build

  • Projects
  • Developer Tools

Contribute

  • Open Source Projects
  • Issues
  • Reviews
  • First Contribution
  • BountiesSoon
  • Feedback

Prove

  • Builders

Ecosystem

  • Partners
  • Get Funded↗
  • HackathonsSoon
Sign in./start-building

Become an Open Source Builder. Learn. Build. Contribute. Prove.

Feedback welcome — open a GitHub issue.

Learn

RoadmapsStart Building

Build

ProjectsDeveloper Tools

Contribute

Open Source ProjectsIssuesReviewsFirst ContributionSupportFeedback

Prove

Builders Directory

Account

Sign in

Legal

PrivacyTermsCredits

© 2026 Pull // code MIT · curriculum CC BY-SA 4.0

PrivacyTermsCredits

lesson // bitcoin

PSBT Workflows

Coordinate multi-party signing with Partially Signed Bitcoin Transactions.

intermediate6 days

Public lesson — sign in to track progress on this roadmap.

./sign-in

On this page

Learning objectives

  • Explain the PSBT roles: creator, updater, signer, finalizer, extractor
  • Carry a PSBT across wallet and hardware boundaries
  • Know when to use PSBTv0 vs later extensions conceptually

study // plan

Lessons are primers. Start with Step 1 (required reading) when present, then follow the numbered steps in the article. Depth comes from primary sources, labs, reflection, and evidence.

Research on Bitcoin Search
BIP174PSBT

Step 1 // Required reading

Complete these before the numbered steps in the lesson body. Links are listed here once — not repeated below.

  • bipBIP-174 PSBT

Reflection prompts

  1. Explain PSBT Workflows to a teammate without jargon - what problem does it solve?
  2. What would break in production if you misunderstood PSBT Workflows?
  3. Which BIP, book chapter, or Core doc is authoritative here, and what did you verify?

Lab // Funded PSBT on regtest

Complete Steps 2–3. On regtest, create a funded PSBT to a lab address, process/sign it with the wallet, finalize, and note the role each RPC played.

evidence required

  • ·walletcreatefundedpsbt (or equivalent) output excerpt
  • ·walletprocesspsbt / finalizepsbt success fields (or decoded summary)
  • ·One sentence mapping creator → signer → finalizer for your flow
  • ·Link to BIP-174 or Optech PSBT section you used
  1. 01

    Worked mental model

    Re-read the diagrams in this lesson once out loud in plain language. If you cannot explain the flow to a friend without jargon, pause and revisit the Mastering Bitcoin / Mastering Lightning chapters linked in Resources. Chapter references are intentional, not decorative.

  2. 02

    Hands-on habit

    Every protocol idea should be paired with one local experiment. That habit turns reading into builder instinct.

    1. Reproduce the happy path on regtest (or Polar for Lightning)
    2. Break it on purpose (wrong fee, expired invoice, offline peer)
    3. Write down what error you saw and which layer produced it (wallet, node, mempool, peer)
  3. 03

    Glossary check

    Pick three terms from this lesson and define them in one sentence each without opening notes. Weak definitions mean the lesson is not finished yet.

  4. 04

    Resource order

    Use Resources in order: narrative book chapter first, then BIP/BOLT for precision, then implementation docs for commands. Jumping straight to RPC flags without the mental model creates brittle knowledge.

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…

PSBT moves through roles until signatures are complete and extractable.

Include witness UTXO data

Signers need previous output information. Incomplete PSBTs fail mysteriously on hardware devices when UTXO data is missing.

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.

further reading

  • docsBitcoin Core PSBT RPCs

    See walletcreatefundedpsbt, walletprocesspsbt, finalizepsbt, send.

  • articleBitcoin Optech: PSBT

review // club

Chapter review picks

Practice on real Bitcoin OSS changes tied to this chapter. Read the diff, use the checklist, and optionally paste your review comment URL in your lab notes.

  • BIP-174 PSBT specification

    Read BIP-174 and map each PSBT role to a wallet or hardware signer in your mental model.

    spec review
    signer rolespartial signatures
    45 min·intermediateopen on GitHub
  • BDK wallet good first issue

    Shortlist a BDK GFI related to UTXO or wallet APIs and draft a one-paragraph approach.

    gfi
    UTXO trackingAPI clarity
    30 min·intermediateopen on GitHub
  • Bitcoin Core RPC documentation PRs

    Find a Core RPC doc issue and leave a review comment on what's missing for a regtest workflow.

    gfi
    examplesparameter clarity
    30 min·beginneropen on GitHub
  • BIP-380 output descriptors

    Study output descriptors and write how you'd express a simple 2-of-3 policy as a descriptor string.

    spec review
    policy expressionimport/export
    40 min·intermediateopen on GitHub
review checklist
  1. Does the change solve the stated problem?
  2. Are edge cases and rollout behavior covered?
  3. Are tests or test vectors included?
  4. Is the diff minimal and clearly explained?

More repos and GFIs on /discover and /issues.

build // next

Apply this chapter in a project

You have the concepts — ship something small to prove it. These Pull projects connect directly to what you just studied.

  • project // psbt-multisig-desk

    ./spec./submit
  • project // hd-wallet-backup

    ./spec./submit

discussion

Discussion

prevBitcoin Core & RPCnextMini Wallet Project

On this page

Press Shift + ? for keyboard shortcuts.

Press R to research on Bitcoin Search.

No questions yet — be the first to ask.