Download Sparrow Wallet: sparrowwallet.com
- Verify the release (instructions on the download page)
- Connect Sparrow to your private electrum server (e.g. Umbrel) or a public server
- "Policy Type": "Multi Signature"
- "Cosigners": 2-of-3
- Go to BitcoinQ+A's "Seed Tool": https://bitcoiner.guide/seed/
- Click "Download" to get an offline copy
- Open the html file
- You can turn off your laptop's wifi to prove it's really working offline.
- Generate a new 12-word seed and write it down on paper.
- On the same paper, write the "BIP32 Root Fingerprint" (aka master fingerprint).
- Keep your tab open for now so we can refer back to this new key.
- In Sparrow, for Keystore 1 click on "New or Imported Software Wallet"
- In "Mnemonic Words (BIP39), set the droplist to 12 words.
- Enter the 12-word seed from above.
- "Use passphrase?" not recommended for now (to keep things simple).
- Click "Create Keystore"
- Click "Import Keystore"
- Update the Label field to "Hot Wallet".
- Note the "Master fingerprint" field and verify that it matches the fingerprint you wrote down above.
- Derivation path will be the default for native segwit multisig:
m/48'/0'/0'/2'
- Click the left/right swap icon next to the "xpub / Zpub" field to display the xpub in its "Zpub" format. Compare that to the "BIP48: Multisig" section's native segwit xpub in Seed Tool.
- Once you've confirmed that they match, you can close Seed Tool.
Select one high-quality hww:
- BitBox02 (USB)
- ColdCard (SD card or USB)
- Jade(?) (QR)
- Passport (QR or SD card)
- SeedSigner (QR)
Select one consumer-grade hww:
- Ledger (USB)
- KeepKey (USB)
- Steps vary depending on type:
- USB: "Connect Hardware Wallet"
- QR / SD card: "Airgapped Hardware Wallet"
- Specific hwws:
- Coldcard: Settings / Multisig Wallets / Export XPUB / Account number 0
- SeedSigner: Export Xpub / Multisig / Native Segwit
- Verify that the resulting Master fingerprint matches expected fingerprint (if you know it)
- After the last Keystore is applied:
- Don't add a local storage password.
- A "Backup Multisig Wallet" dialog will appear.
- Save PDF backup
Coldcard stores your full multisig wallet info (all three xpubs, fingerprints, derivation paths) onboard to enable verifying receive and change addrs.
- Backup your Sparrow multisig in the Coldcard format and save to an SD card.
- On the Coldcard: Settings / Multisig Wallets / Import from SD
- Click on "Receive" and move some spare change to your test multisig.
- Send from Strike (or similar) so you don't dox any of your own utxos.
- We're doing this onchain on mainnet! So just move ~$10 worth.
- (we'll transfer it all back out at the end)
- Check your mempool.space and set a high enough fee.
- If fees are high, just eat the loss so you'll get confirmed in the next block and we can continue.
- Grab a partner; they're your new (pretend) family member, biz partner, etc.
- In Sparrow / Settings / "Export" / Sparrow wallet export (*.mv.db)
- Save the file to your laptop. This is your wallet backup.
- Send your wallet backup file to your "trusted" (pretend) partner.
- Transfer via SD card, send over Telegram or Signal, etc.
- In Sparrow's top menu: "File" / "Import Wallet" / Sparrow / Import File
- Give it a name, skip the local wallet encryption password option.
- You should now see your partner's multisig wallet w/full transaction history.
We're going to cycle your sats back to your new multisig.
- Get a new receive address.
- Click on "Send" and paste it in "Pay to".
- Specify a label (e.g. "self-cycle test")
- Specify "Max" amount.
- Check your mempool.space and set a high enough fee.
- "Create Transaction"
- "Finalize Transaction for Signing"
- Signing options will differ by hww:
- USB: "Sign" / "Scan..."
- QR: "Show QR" then when it's signed in the hww, "Scan QR"
- SD card: "Save transaction" then when it's signed, "Load transaction"
- Construct a tx to send all your sats back home.
- OR... donate them! https://btcpay.keithmukai.com/
- Don't leave any sats behind in your test multisig.
- Send the psbt to your cosigner
- This time pretend they're remote!
- File transfer via Telegram, Signal.
- Paste raw base64 psbt into messenger:
- File / Save PSBT / To clipboard / As Base64
- Cosigner then copies the text: File / Open Transaction / From Text
- Cosigner signs the psbt and transmits the signed psbt back:
- (same method? Is signature included?)
- Sign with a 2nd key and broadcast.
- DELETE the wallet from Sparrow.
- Collaborative multisig (Unchained Capital, Casa, Swan(soon))
If the hardware is available, consider setting up your Keystore #2 and #3 as:
USB or SD-card based:
- BitBox02
- Coldcard
QR code-based:
- Jade
- Passport
- SeedSigner
Use Specter-Desktop as your coordinator software instead of Sparrow.
https://specter.solutions/desktop/
Use Nunchuk as your coodinator app and invite friends to be co-signers in your test multisig.
Can mix QR-code signers, NFC signers (TapSigner, Coldcard), and Bluetooth signers(? Ledger?).
Note: Not sure how you'd use USB or SD-card signers; may or may not be possible.