This issue tracks the work to bring guided multisig wallet setup to the GUI (gui-qml) i.e. a setup wizard backed by interfaces::Wallet methods so that N participants, each running Bitcoin Core, can create a k-of-n multisig (k ≤ n) without hand-assembling descriptors on the command line.
It complements the multisig umbrella issue #24861, which tracks the backend primitives needed for multisig.
Design / supporting document: https://gist.github.com/pseudoramdom/4e14d21a93323217cfe016885285b9aa
Add keys & collect Keys
- #29136 : addhdkey RPC to generate an HD key into a blank wallet, parked as
unused(KEY)- #35436 -
addhdkey: Corresponding wallet interface
- #35436 -
- #32784 -
derivehdkey: account xpub at a chosen (BIP-87) path- Refactor into wallet helper plus interfaces::Wallet::deriveHDKey()
ParseKeyExpression- validate a pasted key expressionsetKeyLabel- per-key labels keyed by master fingerprint
Assemble & verify descriptor
createmultisigdescriptor- descriptor-first utility function; P2WSH and P2TR script-path; sortedmulti, ranged, multipath descriptor.interfaces::Wallet::analyzeDescriptor- preflight checks returning if wallet can sign, own slot, threshold, output type, cosigner fingerprints/paths, first address, checksum, (GUI-renderable script representation?)
Import
- #34861 - Add wallet interface for
importDescriptors - #35377 - import a public multisig descriptor into a wallet that holds one of the keys
- Label the imported descriptor - To be shown at the time of spending
See also
- #24861 - multisig backend umbrella ("Awesome multisig PR labyrinth guide")
doc/multisig-tutorial.md- current CLI workflow