What is Multisig?
A multisig wallet uses an M-of-N scheme where:- N is the total number of public keys
- M is the minimum number of signatures required
- 2-of-3: Requires 2 signatures from 3 possible keys
- 2-of-2: Requires both parties to sign
- 3-of-5: Requires 3 signatures from 5 possible keys
Prerequisites
This guide uses:- Bitcoin Core with descriptor wallet support
- Signet network for testing (use mainnet for production)
jqfor JSON processing (optional but helpful)
Creating a 2-of-3 Multisig Wallet
Extract xpubs from each wallet
Use Extract the WPKH descriptor and get the xpub portion. With Repeat for participant_2 and participant_3.
listdescriptors to get the extended public key (xpub) from each wallet:jq:Create the multisig descriptor
Combine the xpubs into a sorted multisig descriptor:
wsh- Witness Script Hash (native SegWit)sortedmulti(2,...)- 2-of-3 multisig with BIP 67 key sorting<0;1>- Multipath for external/internal (change) addresses
Create watch-only multisig wallet
Create a wallet with private keys disabled:Import the multisig descriptor:
Funding the Multisig Wallet
Generate a receiving address from the multisig wallet:Creating a Multisig Transaction
Sign with second participant
For a 2-of-3 multisig, you only need 2 signatures. The third participant doesn’t need to sign.
Alternative: Sequential Signing
Instead of parallel signing and combining, participants can sign sequentially:Multisig Descriptor Types
Native SegWit (Recommended)
- Most efficient (lowest fees)
- Best privacy
- Modern format
Nested SegWit (Legacy Compatibility)
- Compatible with older wallets
- Slightly higher fees than native SegWit
Legacy (Not Recommended)
- Highest fees
- No SegWit benefits
- Only use if absolutely necessary
Security Best Practices
Recovery and Backup
What to Backup
- Multisig descriptor (with checksum)
- All participant wallet seeds (12/24 word phrases)
- Derivation paths used for xpubs
Recovering a Multisig Wallet
To recover:- Restore participant wallets from seeds
- Recreate the multisig descriptor with same xpubs
- Import descriptor into a new watch-only wallet
Using sortedmulti vs multisig
sortedmulti (Recommended):- Implements BIP 67 key sorting
- Order of xpubs doesn’t matter
- All participants get same addresses
- Easier wallet recovery
- Keys stay in specified order
- All participants must use exact same order
- Error-prone for recovery
Combining with Offline Signing
For maximum security, combine multisig with offline signing:- Keep one participant wallet completely offline
- Create PSBTs on online watch-only wallet
- Sign on offline device
- Combine signatures online
- Broadcast transaction
Troubleshooting
”Insufficient funds” Error
Ensure coins have at least 1 confirmation:“Missing signatures” After Combining
Verify you have enough signatures for M-of-N:“Could not sign transaction” Error
Check that the participant wallet has the correct private key:Next Steps
PSBT
Deep dive into Partially Signed Bitcoin Transactions
Offline Signing
Combine multisig with air-gapped security