Bitcoin Forum

Other => MultiBit => Topic started by: cybreed on July 26, 2017, 03:29:16 AM



Title: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 26, 2017, 03:29:16 AM
So i had been reading and testing solutions posted in here for the issues as per the topic a while now and its really getting frustrating.

First time it happened, I just let it be and sync for a few days but it did not resolved itself. Went thru the forums and then tried to repair the wallet, Got my btcs back next day.

Then it happens again. I decided to try renaming the \Roaming\MultiBitHD\ folder and after "reinstall" and sync my wallet, I had zero btc. After much trying and waiting, I renamed back the original folder and once loaded I was back to yesterday, unconfrimed btc.

Now I have decided to move to a new wallet. But I cant export keys. I tried EMPTY WALLET, only the confirmed btc went thru, all the unconfirmed ones still there.

http://imgur.com/a/SZI8N

How / Where do I find the MultiBit classic w/ export functions ?

Thank you in advance!


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 26, 2017, 05:45:19 AM
You can't... you're using MultiBit HD... it isn't at all compatible with MB Classic... and it doesn't support exporting your private keys directly. Unfortunately, as you have discovered, MBHD has some real issues at the moment, and the devs seem to be MIA... there hasn't been any updates in months! :-\

You have a few options:

1. 'Restore' your seed into "Breadwallet (https://breadwallet.com/)" (iOS or Android)... or "Simple Bitcoin Wallet (https://play.google.com/store/apps/details?id=com.btcontract.wallet&hl=en)" (Android only).  These wallets use the same "Derivation Path" as MBHD, so will restore your wallet/addresses/transactions correctly.

2. If you're at all familiar with Python and running scripts, you can use my extractor scripts (https://github.com/HardCorePawn/multibit_recovery) to get the addresses/private keys containing coins out of your MBHD wallet file

3. You can achieve the same thing as Option 2, by following the manual process below:

  • Step 1. Create an offline copy of the BIP39 Mnemonic Code Converter: https://iancoleman.github.io/bip39/ (instructions at bottom of the page)
  • Step 2. Put your MBHD seed phrase in as "BIP39 Mnemonic"
  • Step 3. Click "BIP32" under "Derivation Path" section
  • Step 4. Set "Client" dropdown to "Custom Derivation Path"
  • Step 5. Set the "BIP32 Derivation Path" to: m/0'/0
  • Step 6. All your addresses/private keys for "Receive" addresses will show at bottom of the page (you may need to click "show more" if you have a lot of used addresses)
  • Step 7. Set the "BIP32 Derivation Path" to: m/0'/1
  • Step 8. All your addresses/private keys for "Change" addresses will show at the bottom of the page (you may need to click "show more" if you have a lot of transactions)
  • Step 9. Sweep (or import) the private keys you have generated from Steps 6 and 8 into another wallet (I'd recommend Electrum (https://electrum.org/#home))
  • Step 10. Be Happy! ;)


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 26, 2017, 08:20:38 AM
Thanks for the prompt and detailed reply.

I already tried #1. it shows zero.

trying #2 but stuck at decrypt_multibit_classic_keys.py I couldnt locate *.key .

So I am trying decrypt_multibit_classic_walletkeys.py, when you say multibit.wallet. its it the exact file name or should I change it to what i have mbhd-20170628235705.wallet?


Best Regards


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 26, 2017, 10:33:49 AM
MB Classic and MB HD are two very different wallets... you need to use the "find_unspent_multibitHD_txes.py" script... it should hunt through your wallet and find the unspent UTXOs...

Although it may struggle if it thinks you have unconfirmed transactions... :-\

Also, if "Breadwallet" or "Simple Bitcoin Wallet" came up with a zero balance then that isn't normal. Have you checked your addresses from MBHD on a blockchain explorer like blockchain.info to see if there ARE actually unspent coins on your addresses?


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 27, 2017, 12:21:09 AM
MB Classic and MB HD are two very different wallets... you need to use the "find_unspent_multibitHD_txes.py" script... it should hunt through your wallet and find the unspent UTXOs...

Although it may struggle if it thinks you have unconfirmed transactions... :-\

What does this do actually? It returns 4 addresses

screenshot http://imgur.com/a/TX5P3

Quote
Also, if "Breadwallet" or "Simple Bitcoin Wallet" came up with a zero balance then that isn't normal. Have you checked your addresses from MBHD on a blockchain explorer like blockchain.info to see if there ARE actually unspent coins on your addresses?

yes I did check the addresses on blockchain.info, past transactions all there.
1DRzm3VwkFt4M5eSw7EFhydcpYAWfM7BL just sent yesterday


When all this unconfirmed situation started, i had 0.0025 btc confirmed and 0.019 btc unconfirmed. Eventho everything was legit for at least a year plus. I did a few repairs only once it worked. I know I should have sent the BTC's to another wallet, but I was quite busy with work, so did not had time to research the better wallets out there. After more repairs, I tried renaming the folder under \Roaming\Multibit and re-sync everything, and then it showed zero btc. After much reinstalls, i renamed back my previous folder and everything was back. the confirmed and unconfirmed btc. So as a test, I sent 0.0025 btc to my new wallet, and it arrived almost instantly.

Out of ideas, I had to signup for help...

Thanks again for your assistance!


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 27, 2017, 03:17:55 AM
No worries... Happy to help :)

MultiBit HD records all the transactions for your addresses in the wallet file... and groups them in various pools (SPENT, UNSPENT etc)... Basically, my script hunts through your wallet file, looking for "Unspent Transactions" and then attempts to match an output address in the transaction with one from your wallet and then outputs the matching private key.

I had another user with that same error report it on the github (https://github.com/HardCorePawn/multibit_recovery/issues/3), but they never responded after I requested more info to try and replicate and debug.

The error is being generated in another Python library when it attempts to write out the script bytes from a transaction... I believe that this is being caused by there being a multisig (aka "3") address involved in that transaction and the library isn't able to deal with the output script for that address...

Can you look at the Transaction ("f82....") and see how many output addresses there are... I suspect there are more than just the 4 that you see, but obviously can't confirm it ;)

As per the github issue posting, I created a slightly modified version of the script that will output some additional info: https://pastebin.com/1EUMusyR

Can you please run that and sending me the "script_bytes" data that it outputs (It isn't sensitive data, it is info that is already publicly recorded in the blockchain ;))... and also the TransactionID... Feel free to PM me if you want to keep the info private.

Hopefully, that will enable me to figure out what is causing the issue and fix it so the script will complete properly and you can get your keys/coins :)


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 27, 2017, 06:36:04 AM
No worries... Happy to help :)

MultiBit HD records all the transactions for your addresses in the wallet file... and groups them in various pools (SPENT, UNSPENT etc)... Basically, my script hunts through your wallet file, looking for "Unspent Transactions" and then attempts to match an output address in the transaction with one from your wallet and then outputs the matching private key.

I had another user with that same error report it on the github (https://github.com/HardCorePawn/multibit_recovery/issues/3), but they never responded after I requested more info to try and replicate and debug.

The error is being generated in another Python library when it attempts to write out the script bytes from a transaction... I believe that this is being caused by there being a multisig (aka "3") address involved in that transaction and the library isn't able to deal with the output script for that address...

Can you look at the Transaction ("f82....") and see how many output addresses there are... I suspect there are more than just the 4 that you see, but obviously can't confirm it ;)

checked f82... at blockchain http://imgur.com/a/9kW2Z yes there are more transactions.

Quote
As per the github issue posting, I created a slightly modified version of the script that will output some additional info: https://pastebin.com/1EUMusyR

Can you please run that and sending me the "script_bytes" data that it outputs (It isn't sensitive data, it is info that is already publicly recorded in the blockchain ;))... and also the TransactionID... Feel free to PM me if you want to keep the info private.

Hopefully, that will enable me to figure out what is causing the issue and fix it so the script will complete properly and you can get your keys/coins :)

ran the new codes... http://imgur.com/a/aHxh3

And screenshots from my phone https://imgur.com/a/7Ze1G


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 27, 2017, 12:53:59 PM
Awesome... thanks for the debug!

It was indeed choking on a multisig address... I think I have it figured out, I should have been using a different library to extract the addresses :)

Try this version: https://pastebin.com/bB6qS4Vi

It should hopefully no longer break on multisig script outputs... so theoretically it should run without error and find your UTXOs now... fingers crossed. Let me know how you get on.


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 28, 2017, 03:21:08 AM
Awesome... thanks for the debug!

It was indeed choking on a multisig address... I think I have it figured out, I should have been using a different library to extract the addresses :)

Try this version: https://pastebin.com/bB6qS4Vi

It should hopefully no longer break on multisig script outputs... so theoretically it should run without error and find your UTXOs now... fingers crossed. Let me know how you get on.

seemed to be doing fine... http://imgur.com/a/OHMWB

..till.. http://imgur.com/a/v0YGD  ???


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 29, 2017, 09:50:06 AM
Ahhhh... looks like that transaction has "Pay To Many"... like MANY addresses... hahah. So the ACTUAL output of your address got drowned out in the noise...

Updated the script (same URL as before): https://pastebin.com/bB6qS4Vi

This oneshould not dump out all the "not found" messages and only so addresses that match...

Also, just FYI, ThomasV released 2.9.0 of Electrum, that should now import MultiBit HD seeds. During wallet creation, select "Standard Wallet -> I have a seed -> Click options and select BIP39 seed -> Input seed -> Next -> and use m/0' as derivation path.

All your addresses should be generated and transaction history loaded! :D


ps. sorry about the delay in responding...


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on July 31, 2017, 03:49:36 AM
 ;D no worries for the late reply. I was away from my office also.

Ran the new script
http://imgur.com/a/3ZBo1

added a # to line 222, ran the script and it competed with out errors.

 :) :) :)

So I use the info in the parsed_wallet.txt then ?


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on July 31, 2017, 05:00:05 AM
;D no worries for the late reply. I was away from my office also.

Ran the new script
http://imgur.com/a/3ZBo1

added a # to line 222, ran the script and it competed with out errors.

 :) :) :)
Doh... had an empty "else:" clause... that would explain the indentation error :P Glad you managed to figure it out tho.


Quote
So I use the info in the parsed_wallet.txt then ?
No the parsed_wallet.txt is just a plaintext dump of your wallet file... the private keys and seeds and stuff will still be encrypted in that txt file... or they should be :P

You should have had some addresses/private keys displayed on screen when you ran the script... It purposely doesn't write anything to a file to try and prevent data leakage... it only displays on screen (and will be in memory)...

If you run with:
Code:
python find_unspent_multibitHD_txes.py mbhd.wallet.aes > output.txt
It will save all the output into a text file... I don't recommend this unless you're get hundreds of output lines and it is exceeding the scrollbuffer of the terminal window and you can't just scroll back up to see the addresses/private keys...


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on August 01, 2017, 12:15:31 AM
okay, so the funds are "recovered".

#1 I had the wrong seed therefore when I restored the wallet, I had restored an empty wallet. I noticed this immediately with the new electrum wallet where there was an option to show addresses.

#2 Thanks to HCP's awesome script, I was able to sweep the keys and move the funds to my brand spanking new electrum wallet. Prior to the last post I had a suspicion that I had the wrong seeds. As I couldn't find any of my addresses in the output. *doh!

Thank you HCP for your patience and your help!


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on August 01, 2017, 02:45:55 AM
Awesome, glad you managed to get it all sorted. I like happy endings :)

Hopefully the functionality that ThomasV has included in Electrum to be able to specify the Derivation Path when importing seeds will make this sort of thing a lot easier in the future!


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on August 08, 2017, 12:45:30 AM
@HCP I would like to send some bitcoin in appreciation for your efforts.. use your address in your profile?


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on August 08, 2017, 05:45:32 AM
Thanks... and yes, the address in my profile (16qkTAUmtCdBYfXXKKGKqD8pAYtL1T5pqV) is fine... :)


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on August 08, 2017, 06:35:17 AM
Done, its not much, but your efforts really appreciated !


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on August 08, 2017, 11:45:39 PM
Hey, thanks for the beer! ;) Now... if only there was a bar around here that accepted bitcoin! :P


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: cybreed on August 09, 2017, 12:08:05 AM
 :D

CheerS!


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: asdlolciterquit_2 on August 16, 2017, 08:26:57 PM
3. You can achieve the same thing as Option 2, by following the manual process below:

  • Step 1. Create an offline copy of the BIP39 Mnemonic Code Converter: https://iancoleman.github.io/bip39/ (instructions at bottom of the page)
  • Step 2. Put your MBHD seed phrase in as "BIP39 Mnemonic"
  • Step 3. Click "BIP32" under "Derivation Path" section
  • Step 4. Set "Client" dropdown to "Custom Derivation Path"
  • Step 5. Set the "BIP32 Derivation Path" to: m/0'/0
  • Step 6. All your addresses/private keys for "Receive" addresses will show at bottom of the page (you may need to click "show more" if you have a lot of used addresses)
  • Step 7. Set the "BIP32 Derivation Path" to: m/0'/1
  • Step 8. All your addresses/private keys for "Change" addresses will show at the bottom of the page (you may need to click "show more" if you have a lot of transactions)
  • Step 9. Sweep (or import) the private keys you have generated from Steps 6 and 8 into another wallet (I'd recommend Electrum (https://electrum.org/#home))
  • Step 10. Be Happy! ;)

hi, i'm trying to follow these steps, but there something that i don't understand.

It seems that the "Derived Addresses" are...too much!!

I keep click on "Show more rows" but it seems that there is no end.

For example now i have more than 700 private keys, and if i wrote "1000" in "show more row" box, i will have 1700 private keys! How is it possible?

My wallet is a wallet with only 2 receive transaction e 0 send transaction!!!

Did i do something wrong?


Title: Re: Unconfirmed amount unable to move to new wallet
Post by: HCP on August 17, 2017, 04:13:51 AM
hi, i'm trying to follow these steps, but there something that i don't understand.
It seems that the "Derived Addresses" are...too much!!
I keep click on "Show more rows" but it seems that there is no end.
For example now i have more than 700 private keys, and if i wrote "1000" in "show more row" box, i will have 1700 private keys! How is it possible?
My wallet is a wallet with only 2 receive transaction e 0 send transaction!!!
Did i do something wrong?
Hahahah... no...  ;D :D

You haven't done anything wrong, that is just how Hierarchical Deterministic (HD) wallets work... they can, for all intents and purposes, generate an "unlimited" number of addresses from the seed...

The only thing you did "wrong" was to keep going! ;) You really only need to get the private keys for the addresses that you have actually used and still contain coins... there is no point trying to import or sweep the other private keys if they control no coins ;)

If you have only 2 receive transactions, you'll need to know the address(es) used to receive those 2 transactions... and then get the private key(s) for just those address(es). :)



Title: Re: Unconfirmed amount unable to move to new wallet
Post by: asdlolciterquit_2 on August 19, 2017, 08:25:43 AM
hi, i'm trying to follow these steps, but there something that i don't understand.
It seems that the "Derived Addresses" are...too much!!
I keep click on "Show more rows" but it seems that there is no end.
For example now i have more than 700 private keys, and if i wrote "1000" in "show more row" box, i will have 1700 private keys! How is it possible?
My wallet is a wallet with only 2 receive transaction e 0 send transaction!!!
Did i do something wrong?
Hahahah... no...  ;D :D

You haven't done anything wrong, that is just how Hierarchical Deterministic (HD) wallets work... they can, for all intents and purposes, generate an "unlimited" number of addresses from the seed...

The only thing you did "wrong" was to keep going! ;) You really only need to get the private keys for the addresses that you have actually used and still contain coins... there is no point trying to import or sweep the other private keys if they control no coins ;)

If you have only 2 receive transactions, you'll need to know the address(es) used to receive those 2 transactions... and then get the private key(s) for just those address(es). :)



wooowwwww!!

it works!!!!!

thanks a lot man!!!