-
Notifications
You must be signed in to change notification settings - Fork 38.8k
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
createmultisigwalletRPC 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
enumeratesignersto get a list of device fingerprints, and then call the newcreatemultisigwallet:It uses the
getxpubHWI 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.txtfile to enable change detection: