-
Notifications
You must be signed in to change notification settings - Fork 38.1k
External signer multisig support #16895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
cc @justinmoon @stepansnigirev thoughts on derivation paths? |
Using
|
963d40b
to
09d604f
Compare
09d604f
to
dbc0c4c
Compare
It now uses You can test this with HWI, a ColdCard simulator plus one other wallet, e.g. Trezor (Simulator) or Ledger. After you called
Now you can send and receive, even with the GUI. Note that HWI automatically clicks Yes on the ColdCard simulator screen to sign.... |
7108856
to
2c5c803
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
87d8b35
to
b58c124
Compare
b58c124
to
bb1c542
Compare
bb1c542
to
c12613e
Compare
1fa08cb
to
3fda68e
Compare
I'll look into this again when there's more progress on a standard for multisig wallet coordination, see #18142. |
Should this be reopened? |
I have some ideas on how to tackle this, but no need to reopen this PR. First step is #22341 |
This adds 7 commits on top of #16546 (External signer support) to enable multisig functionality.
It introduces a new
createmultisigwallet
RPC which can also be used without external signer support (although it's only marginally easier than importing descriptors).It automatically fetches xpubs from connected hardware devices (using HWI), constructs BIP67 multisig descriptors (native and wrapped SegWit) and imports them into a new wallet. For not connected external signers it's also possible to manually provide an xpub.
Use
enumeratesigners
to get a list of device fingerprints, and then call the newcreatemultisigwallet
:It uses the
getxpub
HWI method instead ofgetdescriptors
, and constructs the descriptor locally.TODO:
See also: Junction or Specter Desktop for similar workflows.
Change detection
Note that due to limitations in HWI, hardware wallet firmware and the PSBT format, the current multisig flow is pretty unsafe. This is because change detection generally doesn't work.
On ColdCard you can put a
multisig.txt
file to enable change detection: