Try Bitcoin Core, latest version, create a "
blank" wallet with private keys enabled.
Import your private keys in a MultiSig descriptor, then let the wallet rescan if your node is fully synced and not the blockchain isn't pruned.
Alternatively, keep Bitcoin Core offline so that you wont have to sync it and create the transaction elsewhere; import the address to Electrum as watching-only wallet and create the transaction there, then export the PSBT file/string to offline Bitcoin Core to be signed.
-snip- step-by-step.
Okay, but this will be a tedious task.
[Offline] In Bitcoin Core:
- Install Bitcoin Core v26.0 (link above the forum)
- Launch it and create a new wallet with the option "Make blank wallet" ticked; enable "Encrypt wallet" if you want to add a passphrase in the next step.
- Once created, open the console (Window->Console) and in the console, select the wallet that you've just created.
- Now, create a multisig descriptor with your and your friend's private key.
The format should be like this if the 2-of-2 MultiSig address starts with "3":
sh(sortedmulti(2,WIF_PrivateKey1,WIF_PrivateKey2))
If it starts with "bc1", use this instead:
wsh(sortedmulti(2,WIF_PrivateKey1,WIF_PrivateKey2)) - Get the desccriptor's checksum using the command: getdescriptorinfo "the multisig descriptor above"
The checksum should be the 8-character string value of checkum, excluding the "". - Then import the descriptor to the blank wallet using this command (use walletpassphrase "passphrase" 180 command first if you've encrypted the wallet):
importdescriptors "[{\"desc\": \"wsh(sortedmulti(2,WIF_PrivateKey1,WIF_PrivateKey2))#checksum\",\"timestamp\": \"0\",\"label\": \"Guarda_2-2Multisig\"}]"
The "checksum" should the string that you got from getdescriptor command. You can set your own label. - After importing it, you can check the address in Bitcoin Core's Receiving address list in "Window->Receiving addresses".
Check if it's correct, otherwise, Guarda may be using a non-standard MutiSig. (share one of your previous outbound transaction for hints) - If Correct, proceed to Electrum
[Online] In Electrum (
plus signing):
- Install the latest version for maximum PSBT compatibility.
- Create a new wallet using the option: "Import Bitcoin address or private keys" and paste your address there.
- Finish the wallet and let it sync.
- Create your transaction and export it using "Share->Save to file".
- Transfer and import that file to Bitcoin Core via "File->Load PSBT from file" (the correct wallet name should be selected in the drop-down menu)
- After importation, sign it using the "Sign Tx" button (type your passphrase) and once 'Broadcast Tx' is clickable, it's now signed.
- Export the signed transaction via "Save->Select directory"
- Transfer that to Electrum via "Tools->Load Transaction->From file", then broadcast it to send to the network.