Two wallets have derivation path m/84'/0'/0', but third (Electrum) have m/0'.
You can't just copy a wpkh descriptor's extended public key (
xpub) from Core and expect it to sign a multiSig transaction's PSBT, it will fail to reproduce the correct script.
Also, their extended public keys aren't compatible with each other, it needs extra step to convert; one click of a button in Sparrow, command in Electrum.
e.g.:
In Bitcoin Core, you'll need to manually create and import a
wsh(sortedmulti()) external and internal descriptors containing the master private key of your wallet with your preferred derivation path and the extended public keys of the cosigners.
Then get the derived extended public key with that derivation path instead of the wpkh descriptor's xpub, use that in the coordinator.
In Electrum, your "
master public key" is your extended public key but it's not the normal "
xpub" format that Core supports.
So you'll have to convert it using Electrum's
convert_xkey() command to be compatible.
Should I use this derivation path for all three signers (keystore), or to enter derivation path from the wallets?
The gist is: that derivation path indicates how to derive the xpub that follows it from the master private key (
represented by a master fingerprint)
Although it might work in the cosigners and coordinator's side since it only needs the xpub and the derivation path on its right side to generate the addresses, you should still set it correctly to prevent any issues in the future.
On the other hand, the part with the master private key in the signers' side should be correct for it to derive the correct extended public key that's given to the cosigners.
I want to create multi-vendor multisig using software wallets.
Bitcoin Core and Sparrow wallet utilize descriptors, Electrum doesn't.
So setting this up isn't going to be straightforward, should be possible but must be properly documented for you to be able to reproduce it in the future.