Pages:
Author

Topic: BTC stuck in Electrum multi-sig (will pay $1k reward) (Read 476 times)

legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Technical issues like that is what puts me off using hardware wallets, which is why I like to keep it simple and sign via electrum air gapped computer.
A multisig with 2 different hardware wallets isn't the most standard way to use hardware wallets, so I don't think this should be a reason not to use them. I would however recommend funding and withdrawing a small amount before putting your life savings into a multisig address. It also doesn't hurt to verify you can do the same from your (seed word) backups.
member
Activity: 81
Merit: 30
Glad it worked out for you.  Smiley

Technical issues like that is what puts me off using hardware wallets, which is why I like to keep it simple and sign via electrum air gapped computer.
legendary
Activity: 952
Merit: 1385
Very nice kung-fu! Congratulations!
newbie
Activity: 7
Merit: 31
Hi all,

Thanks for all your help, but I was able to figure it out.

Here's what I did in case anyone has the same problem:

1. Used someone's Windows computer
2. Loaded up Electrum on there - same version 3.3.8 - with Electrum + Ledger wallet files
3. Ran Electrum as administrator (may or may not have helped)
4. Signed transactions from Electrum wallet file
5. Before signing + broadcasting with Ledger (via Electrum), I did this:

Quote
You need to modify the ledger.py file found in x:\Program Files (x86)\Electrum-RVN\electrum\plugins\ledger.
You can use notepad to modify it. Under DEVICE_IDS = [ you should see something like (0x2c97, 0x0001), # Nano-S
You need to change it to (0x2c97, 0x1015), # Nano-S
Here are the codes for the different Ledger
Ledger Nano S : Product ID 0x1015
Ledger Blue : Product ID 0x0015
Ledger Nano X : Product ID 0x4015
Hope this helps

Personally I changed the DEVICE_ID to (0x2c97, 0x1011) after (0x2c97, 0x1015) didn't work because:

Quote
You can find your product ID in Windows device manager in the details tab of your Nano. It looks like USB\VID_2C97&PID_1011
https://www.ledger.com/windows-10-update-sunsetting-u2f-tunnel-transport-for-ledger-devices#:~:text=Ledger%20Blue%20%3A%20Product%20ID%200x0011,Nano%20X%20%3A%20Product%20ID%200x4011

(Credit to this person who helped someone with an Electrum Ravencoin issue:
https://www.reddit.com/r/Ravencoin/comments/k473eb/ledger_electrumrvn_338rvn3_wont_detect_device/gnai1oi/)

6. After making the above change to the ledger.py file in the Electrum program files, Electrum detected the Ledger, and I was able to sign transactions and broadcast them!

7. I had to wait a bit for the transactions to sign + confirm (I think because I had a lot of inputs), but damn it finally worked

Again, thanks to everyone for their help. And I hope no one has to go through this

What I thought would be a nice HODL ended up being very stressful.

I think the lesson is to not overcomplicate things if you aren't a pro
legendary
Activity: 2268
Merit: 18711
o_e_l_e_o he also has to select legacy p2sh as the script type.
I'm not sure he does. If he enters his Electum seed phrase as the first signer, then Electrum will automatically choose the matching script type for the two hardware wallets and he won't get a choice. He'll only get shown a choice if he enters one of the hardware wallets as the first cosigner, but if he picks the wrong script type then Electrum will return an error when he tries to enter his Electrum seed phrase and he won't be able to generate a wallet at all.

CMIIW though.
legendary
Activity: 3682
Merit: 1580
o_e_l_e_o he also has to select legacy p2sh as the script type.
legendary
Activity: 2268
Merit: 18711
So reading through that very incorrect guide you followed again, here is what I think you need to do to solve this issue:

  • Open Electrum and create a new wallet
  • Select "Multi-signature wallet" followed by 2-of-3
  • For the first signer, select "I already have a seed" and enter your Electrum seed phrase
  • For the second signer, attach one of your hardware wallets, select "Cosign with hardware device", and then change the derivation path to m/49'/0'/0'
  • Repeat the previous step for the third signer with your other hardware wallet attached
  • Open the wallet and see if the addresses match up/the funds are visible

This is assuming you used the derivation path m/49'/0'/0' as that guide incorrectly states you should. If you used either m/44'/0'/0' or m/84'/0'/0' (or something else entirely), then substitute that in above.

If that all fails, then the next solution is going to be to try to recreate your hardware-wallet linked Electrum wallets from the relevant seed phrases on an airgapped computer, extract their master private keys, and then use those to recover your multi-sig wallet.
legendary
Activity: 3682
Merit: 1580
To add to what nc50lc is saying a standard wallet (single sig) will have a different derivation path than that for a multisig wallet so doing it like that could create more issues down the road.

edit: when restoring the multisig wallet from seed you will have to enter the same derivation path as in the guide  i.e. bip49.
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
That guide shouldn't be followed since it's not the correct way to set-up a MultiSig Electrum wallet using hardware devices.
But you already did and here we are.

The users don't need to create a standard wallet in order to get the hardware wallet's xpubs (master public key).
During the creation process, each cosigners should start creating a MultiSig wallet right from the start until the point when they'll be presented with their "Master Public Key".
Then send it to other cosigners (as that cosigner receive theirs) to finish their own MultiSig wallets.
HCP
legendary
Activity: 2086
Merit: 4361
Unfortunately don't see any balance when I do this
(when I create a new Electrum 2/3 multi-sig using my Electrum seed phrase and public keys from hardware wallets, I see my coins though)
So creating a 2-of-3 Multisig using "Seed" + hardware device + hardware device == incorrect wallet... but 2-of-3 Multisig using "seed" + "master public key" + "master public key" does work? If so, then it very much sounds like a "derivation" path and/or "Script Type" issue.

Having said that, it depends on how you try and set up the wallet as to what options Electrum will give you. If you put the "seed" in first, it should automatically detect if it is a "legacy" seed, or if it is a native segwit seed etc... and only prompt for derivation path:

"Legacy" seed used:



"Native Segwit" seed used:



If however, you try and use the "hardware key" first... it will give you the full "script type" and "derivation path" prompt:



So, when you are creating the wallet... what is the "seed type" that shows when you enter it? Huh

legendary
Activity: 952
Merit: 1385
If OP knows how to restore wallet from backup, he should definitely do this, the options are:
- on his mac using different path - to fix issue with Trezor
- on other machine (windows, linux, mobile) - to make Ledger working
I am not sure if intermediary solution -linux on virtualbox- would solve the issue.

Of course we assume both firmwares and Electrum are up to date.

Just a question- is seed based on Electrum dictionary?
legendary
Activity: 2268
Merit: 18711
Would derivation path cause these issues?  Just asking.
The error with the Ledger? No, that wouldn't be caused by an incorrect derivation path. If the derivation path was wrong, Electrum should still detect the Ledger, but just show a different wallet or be unable to sign transactions using it. That is more likely a problem with hardware, drivers, some other software accessing the Ledger at the same time, etc.

The error with the Trezor? Yes, potentially. If he has the wrong derivation path then he is opening a different wallet, which will obviously fail to detect the input in question from the original wallet and therefore return an error.
member
Activity: 81
Merit: 30

When I try to sign a transaction with Electrum (and then sign + broadcast with Ledger Nano S), it won't work because Electrum won't detect the Ledger Nano S.

When I try to sign a transaction with Electrum (and then sign + broadcast with Trezor One), it won't work because of the error "DataError: Expected input with amount".


Would derivation path cause these issues?  Just asking.
legendary
Activity: 952
Merit: 1385

I think the issue here is likely going to be derivation path related. That guide you linked to has you using m/49'/0'/0'. This is the standard derivation path for single sig P2WPKH-P2SH, but this is not the derivation path Electrum uses for multi-sig wallets. What are the first four character of your public keys from your hardware wallets (include capitalization if it is there please)?

Do you expect that problem?
https://bitcoin.stackexchange.com/questions/92533/why-do-the-xpubs-from-electrum-and-trezor-not-match-when-creating-a-multisig-wal

Like I said before, I think problem could be related to derivation paths, I see no point why trezor didn’t detect input.
Explained: https://www.reddit.com/r/Electrum/comments/bptrdj/electrum_multisig_derivation_path_for_different/
legendary
Activity: 2268
Merit: 18711
Right. So just to confirm you've got your three seed phrases, imported them no problem in to a new 2-of-3 multi-sig wallet (you didn't get any warnings like "checksum failed" or "unknown wordlist"?), generated a new wallet, and you've generated different addresses than you were expecting? (Note as above that if you do this on an airgapped device the balance will always be zero - you'll need to manually check if the addresses match.)

Can I also check what character do the addresses in your original multi-sig wallet start with? "1", "3", to "bc1"? What about the addresses in that new multi-sig wallet you just recovered using your seed phrases?

I think the issue here is likely going to be derivation path related. That guide you linked to has you using m/49'/0'/0'. This is the standard derivation path for single sig P2WPKH-P2SH, but this is not the derivation path Electrum uses for multi-sig wallets. What are the first four character of your public keys from your hardware wallets (include capitalization if it is there please)?

Have you ever been able to spend coins from this wallet? Did you test you could recreate it at any time before sending coins to it?
newbie
Activity: 7
Merit: 31
When I open ex) the Trezor file, I don't see any balance
Then those files are set up incorrectly. Every one of the three multi-sig files should show the same addresses and the same balance when you open them. This probably explains why you cannot currently spend your coins.

In the first instance, I would try creating a brand new Electrum wallet using your two hardware devices and your Electrum seed phrase, and without importing any master public keys/xpubs/ypubs/zpubs. This should create a new 2-of-3 multi-sig wallet which shows your coins, and which you can spend from. This is safe enough to do on your current computer since you are still protected by your hardware wallets. If doing this generates a different wallet with different addresses than your funded 2-of-3 multi-sig, then we have other issues to address before addressing any errors you are experiencing.

How long ago did you set up this multi-sig wallet? Do you remember how you did it? Have you reset either of the hardware wallets since you did it? Have you ever used a passphrase/13th word/25th word/seed extension?


"I would try creating a brand new Electrum wallet using your two hardware devices and your Electrum seed phrase, and without importing any master public keys/xpubs/ypubs/zpubs. This should create a new 2-of-3 multi-sig wallet which shows your coins, and which you can spend from. This is safe enough to do on your current computer since you are still protected by your hardware wallets. If doing this generates a different wallet with different addresses than your funded 2-of-3 multi-sig, then we have other issues to address before addressing any errors you are experiencing."

Unfortunately don't see any balance when I do this
(when I create a new Electrum 2/3 multi-sig using my Electrum seed phrase and public keys from hardware wallets, I see my coins though)

"How long ago did you set up this multi-sig wallet? Do you remember how you did it? Have you reset either of the hardware wallets since you did it? Have you ever used a passphrase/13th word/25th word/seed extension?"

I believe in early 2019

I did it following this guide
https://medium.com/@tiero/how-to-bitcoin-multi-signature-wallet-using-electrum-and-several-ledger-nano-s-225867e3b726

I am pretty sure I did the following:

Create 2/3 multi-sig wallet in Electrum
#1 = Electrum (the app)
#2 = import cosigner key from Ledger
#3 = import cosigner key from Trezor

If by resetting hardware wallets, you mean changing the seed, no I did not

"Have you ever used a passphrase/13th word/25th word/seed extension?"
Is this adding a password/extra word when entering your seed somewhere? If so, I didn't use anything like that
legendary
Activity: 952
Merit: 1385
I'm no expert but would try this,

Buy cheap android phone £50 and Install Electrum from Google play or better from Electrum.org using their method to verify the download is genuine.

From this point make sure the phone NEVER has internet until funds moved to your new hardware wallet address.

Using Anroid phone import a 2of2 multisig into Electrum with option "I already have seeds".  Use Bip39 when importing the hardware wallet seed.  The share addresses should match those on Mac when setup complete.

Now create the online transaction with your Mac computer and export the QR code so the phone can scan and sign the transaction.

Export the signed QR code from phone back to the Mac computer using scan option and transmit the transaction from your Mac computer to your new hardware wallet address.

Obviously the two sets of the seeds you used to recreate the multisig on the the phone  would have to be 2 of the 3 used when you created the Mac multisig.



I think I have a cheap never used phone before, so will give this a try

But what he wrote not really makes any sense, it is like creation of new wallet from backup. Could be on phone, on computer…
And take into regards what was written above about restoring from seed.
legendary
Activity: 2268
Merit: 18711
I think I have a cheap never used phone before, so will give this a try
Ok. This is essentially the same advice as I gave on the first page of this thread but using an airgapped phone instead of an airgapped computer. An airgapped phone is not as secure as a computer, so do so at your own risk. To be as safe as possible, you should reset the phone to factory settings, turn off all connectivity and turn on flight mode, download and verify the Electrum .apk from https://electrum.org/#download on your computer before transferring it to the phone via a clean and formatted SD card or similar.

You will need to import all three seed phrases (not just two), and select BIP39 for the two hardware wallet seed phrases.

The wallet on your phone will show zero balance since it does not have internet connectivity. You will need to check if the actual addresses match those from your funded multi-sig wallet.
newbie
Activity: 7
Merit: 31
I'm no expert but would try this,

Buy cheap android phone £50 and Install Electrum from Google play or better from Electrum.org using their method to verify the download is genuine.

From this point make sure the phone NEVER has internet until funds moved to your new hardware wallet address.

Using Anroid phone import a 2of2 multisig into Electrum with option "I already have seeds".  Use Bip39 when importing the hardware wallet seed.  The share addresses should match those on Mac when setup complete.

Now create the online transaction with your Mac computer and export the QR code so the phone can scan and sign the transaction.

Export the signed QR code from phone back to the Mac computer using scan option and transmit the transaction from your Mac computer to your new hardware wallet address.

Obviously the two sets of the seeds you used to recreate the multisig on the the phone  would have to be 2 of the 3 used when you created the Mac multisig.



I think I have a cheap never used phone before, so will give this a try
legendary
Activity: 2268
Merit: 18711
Correct!   Need all three sets of seeds to recreate the multisig.
Again, not quite. Tongue (I swear I'm not just being pedantic for the sake of it!)

You do not need all three seed phrases to recreate a 2-of-3 multi-sig. You need at least two seed phrases or master private keys, but the information you obtain from the third share could be a seed phrase, master private key, or master public key. You only need the seed phrase/master private key for the threshold number of shares (2 in this case), but you need one of those or the master public key from every share (3 in this case).

This is important when backing up your multi-sig wallet, since if you have two seed phrases but no information at all from the third share you will not be able to recover the wallet and spend your coins.
Pages:
Jump to: