Pages:
Author

Topic: Wallet Seed (forgetting one word , Am I Screwed?) (Read 1516 times)

legendary
Activity: 1159
Merit: 1001
Basic maths would suggest that there are 22 positions (as you think not the first or last word)... and 2025 word possibilities (most wallets don't re-use seed words).

The seed on one of my eight nano’s did pick for me a seed with the same word used twice, sequentially.

So it’s a rare possibility.
newbie
Activity: 6
Merit: 0
Need help recover mu last word guys, i have All words are in correct order but not sure in between first and last word which will be its correct position.
newbie
Activity: 24
Merit: 0
Thanks mocacinno   LoyceV   HCP,
for all the information,  I am sure a lot flew over my head, but Im learning.
but things seem more plausible now.


I can copy/paste 200 private keys into Electrum and it "pauses" for about 10-15 seconds... and then after clicking next it takes another 30 seconds to have a think while it creates the wallet and generates the address matching the private keys...

For the record, I have a Core i5-3570K, 8 GB RAM, Windows 10 64bit... OS and Electrum on an SSD...

I reckon I could probably crank through the addresses of ~20 seeds per hour without even really rushing... so you probably have 10+ hours worth of copy/paste to check all the seeds (assuming your "23" word seed generates a similar number of valid seeds as mine)

EDIT: In case anyone is interested, the (very) unpolished script is here: https://github.com/HardCorePawn/btcMisc/

usage:
Code:
generate_mnemonic_keys.py word1 word2 word3 ... wordN-1

Where N is a standard mnemonic length... ie. 12, 18, 24. So this means you should enter 11, 17 or 23 words!

NOTES:
- You NEED the wordlist directory and English.txt file
- Script will hunt for valid seeds, and once found, will generate 100 receive addresses/keys and 100 change addresses/keys and dump them into keys_XXX.txt file(s), one for each seed.
- Script is only looking for ONE missing word
- Script only looks for missing word from position2 to positionN-1 (ie. it does not look for a missing First or Last word)
- Script is only using BIP44 derivation path and only looks for Account 0 addresses/keys



Will defiantly check script, and play around,  when I get home
HCP
legendary
Activity: 2086
Merit: 4363
I can copy/paste 200 private keys into Electrum and it "pauses" for about 10-15 seconds... and then after clicking next it takes another 30 seconds to have a think while it creates the wallet and generates the address matching the private keys...

For the record, I have a Core i5-3570K, 8 GB RAM, Windows 10 64bit... OS and Electrum on an SSD...

I reckon I could probably crank through the addresses of ~20 seeds per hour without even really rushing... so you probably have 10+ hours worth of copy/paste to check all the seeds (assuming your "23" word seed generates a similar number of valid seeds as mine)

EDIT: In case anyone is interested, the (very) unpolished script is here: https://github.com/HardCorePawn/btcMisc/

usage:
Code:
generate_mnemonic_keys.py word1 word2 word3 ... wordN-1

Where N is a standard mnemonic length... ie. 12, 18, 24. So this means you should enter 11, 17 or 23 words!

NOTES:
- You NEED the wordlist directory and English.txt file
- Script will hunt for valid seeds, and once found, will generate 100 receive addresses/keys and 100 change addresses/keys and dump them into keys_XXX.txt file(s), one for each seed.
- Script is only looking for ONE missing word
- Script only looks for missing word from position2 to positionN-1 (ie. it does not look for a missing First or Last word)
- Script is only using BIP44 derivation path and only looks for Account 0 addresses/keys
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
actually... That idea to just copy/paste the addresses into an Electrum watching wallet isn't as dumb as it sounds...
I've just tested it with 1770 addresses, and the moment I pressed CTRL-V, Electrum took full CPU on my very slow netbook. It's still doing that, for 40 minutes now. Smaller amounts at once might be better.

-a method to extract unique addresses from my Bitcoin Core database
After researching this for the past hour, I found blockparser as the best option. Unfortunately, I can't use it due to it's memory requirements.

Another option: BitCore BTX took a Snapshot of all Bitcoin addresses with a minimum balance of 0.01 BTC on April 23 this year. If your address is older than that, this gives a much more manageable list to find your address in.
legendary
Activity: 3612
Merit: 5297
https://merel.mobi => buy facemasks with BTC/LTC
The full run took 9mins and 44 seconds to generate 193 valid seeds and the 200 associated receive and change addresses/keys for each seed. 38600 in total then for my random 24 word seed that I deleted a word out of.
You could even copy/paste them all into Electrum, see what happens!

Right,  130 times a day individually would only take me a year to try every combo

Even this can be scripted... electrum can be run from the cli Wink

Since you're talking about between 1 and 13 BTC, i think this would be well worth your effort... You can either take the advice giving by the people on this forum and construct the sollution yourself, or you can offer a decent bounty for somebody to write you a script completely tailored to your unique problem...
HCP
legendary
Activity: 2086
Merit: 4363
actually... That idea to just copy/paste the addresses into an Electrum watching wallet isn't as dumb as it sounds... If you grouped the output addresses of my script by seed, and then just bulk imported them into a watching wallet (up to) 193 times until you find the addresses that have your coins, then you know which seed is the correct one. Smiley

Would take a few hours... and would be tedious and annoying, but if you think it's too much hassle, then PM me the words you have Tongue

Seriously tho... if you want I can tidy the script up so it will print out the addresses into a text file (or files)... and as long as you can run python, you can start copy/pasting Wink
newbie
Activity: 24
Merit: 0
The full run took 9mins and 44 seconds to generate 193 valid seeds and the 200 associated receive and change addresses/keys for each seed. 38600 in total then for my random 24 word seed that I deleted a word out of.
You could even copy/paste them all into Electrum, see what happens!

Right,  130 times a day individually would only take me a year to try every combo
newbie
Activity: 24
Merit: 0
How do you know for sure you have all but one word? Is this based on the total number of words you have?

Yea 23 words copied,  should have been 24.
no addresses for the wallet,





Not sure how long it would take to do the RPC queries tho... I don't have a full addressindexed node... Tongue

sounds complicated

Now i'm able to follow you Smiley
so, you have a ledger, a seedphrase with 1 word missing, no PIN code, no notion of addresses belonging to this ledger...
How much BTC are we talking about? If it's 0.25 or up, it might be worth having somebody write a brute-force script for you... If it's less, i would advise you to hold on to the part of the seed you DO know, just in case BTC price rises even further... Who knows, if the price is $100k/BTC in 10 years, it might even be worth writing a brute force script for 0.01BTC Wink

More than 1, less than 13 
Ill leave it that to save the embarrassment  : /

hmm, all 2048 phrases in each of the 22 positions it may be 45,000 plus combinations so probably a script of sorts would work and spit out 45,000 plus combination . and Ill just copy and paste each one manually till one takes in a compatible desktop wallet. maybe do 130 copy and pastes a day, that would take me a year to try every combination. so that doesn't seem to unreachable.?
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
The full run took 9mins and 44 seconds to generate 193 valid seeds and the 200 associated receive and change addresses/keys for each seed. 38600 in total then for my random 24 word seed that I deleted a word out of.
You could even copy/paste them all into Electrum, see what happens!
HCP
legendary
Activity: 2086
Merit: 4363
Ok, so I've expanded my script a little bit... it will take a list of 23 words... and cycle through the possible combinations of adding in 1 word at each position (excluding first and last) generating valid seeds, and generates the private keys/addresses for the first 100 receive and change addresses for each valid seed that it finds assuming:

1. The 23 words supplied are in the correct order and seed is just missing one word
2. The missing word is NOT the first or last word
3. The derivation path used is BIP44... ie. m/44'/0'/0'/0/0 for first receive addr on account 0 and m/44'/0'/0'/1/0 for first change address on account 0.

The full run took 9mins and 44 seconds to generate 193 valid seeds and the 200 associated receive and change addresses/keys for each seed. 38600 in total then for my random 24 word seed that I deleted a word out of.

Not sure how long it would take to do the RPC queries tho... I don't have a full addressindexed node... Tongue
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
You could be looking at something in excess of 200 valid seeds assuming a relatively similar "hit" rate of 9-10 words per position... So how would you know that you'd generated the correct one?
I can think of a solution for this: simply extract a list of all Bitcoin addresses that ever had a balance, and search those 200 addresses in the list.

Quandl.com gives the number of unique addresses used per day, but I'm not sure how accurate this is. Let's assume on average 200k addresses for 8 years, say 600 million in total, 20 GB data. My simple Linux-laptop could search that 200 times in a few minutes. It could be much faster if I split the list into parts that fit my RAM. Setting up a database would be more work, but could speed up the search in case many more addresses need to be tested.

I'm now intriqued to be able to do this. I need:
-a command-line method to extract addresses from a word seed
-a method to extract unique addresses from my Bitcoin Core database

Once I have both, I can easily script them together to run a search.

this would take several weeks to brute-force, but if the incentive is big enough, it might still be worth it.
My estimate is a lot less, assuming I can figure out the two required tools I mentioned above. It would be a nice think to master. On the forum here someone once shared a program that quickly searches up to 5 missing characters from a private key. I saved it, it might come in handy some day.

I was hoping maybe if I had most words,
How do you know for sure you have all but one word? Is this based on the total number of words you have?
legendary
Activity: 3612
Merit: 5297
https://merel.mobi => buy facemasks with BTC/LTC
Didnt need jaxx wallet,  so thats why i destroyed it.
I was using it has intermediary to make sure libertyX was sent out successfully before I kept buying more without leaving the gas station.


I cant access my ledger because its erased which has the coins
I only sent into ledger from Jaxx (which i can't recover either)  I never sent out from the ledger to somewhere else,  

I was using ledger as long term (dont touch for a long time wallet)


So Jaxx wallet & seed deleted from phone with no coins,,  but has addresses to ledger
Ledger wallet has coins but is erased and need missing phrase from seed


thats where i am at.

Now i'm able to follow you Smiley
so, you have a ledger, a seedphrase with 1 word missing, no PIN code, no notion of addresses belonging to this ledger...
How much BTC are we talking about? If it's 0.25 or up, it might be worth having somebody write a brute-force script for you... If it's less, i would advise you to hold on to the part of the seed you DO know, just in case BTC price rises even further... Who knows, if the price is $100k/BTC in 10 years, it might even be worth writing a brute force script for 0.01BTC Wink
newbie
Activity: 24
Merit: 0
Didnt need jaxx wallet,  so thats why i destroyed it.
I was using it has intermediary to make sure libertyX was sent out successfully before I kept buying more without leaving the gas station.


I cant access my ledger because its erased which has the coins
I only sent into ledger from Jaxx (which i can't recover either)  I never sent out from the ledger to somewhere else,  

I was using ledger as long term (dont touch for a long time wallet)


So Jaxx wallet & seed deleted from phone with no coins,,  but has addresses to ledger
Ledger wallet has coins but is erased and need missing phrase from seed


thats where i am at.
legendary
Activity: 3612
Merit: 5297
https://merel.mobi => buy facemasks with BTC/LTC
coins are in ledger

I used jaxx as a intermediary when i was buying from libertyx
so I discarded both Jaxx wallet and it's seed
which would have records of Ledger Addresses because I was sending to the ledger from Jaxx

bought from LibertyX  send to Jaxx  then to Ledger

Jaxx I dont have app or seed anymore, hence I cant dig up address history which would show me sending to Ledger

sorry for confusion.

Your ledger should still have a history of the transactions used to fund the ledger's addresses. If you have these transaction id's you can look them up, and see where the inputs came from...

However, since the jaxx wallet is empty, you could just create a new one, it's not worth spending any time to brute force an empty wallet Wink
newbie
Activity: 24
Merit: 0
coins are in ledger

I used jaxx as a intermediary when i was buying from libertyx
so I discarded both Jaxx wallet and it's seed (no coins, all transfered to ledger)
which would have records of Ledger Addresses because I was sending to the ledger from Jaxx

bought from LibertyX  send to Jaxx  then to Ledger

Jaxx I dont have app or seed anymore, hence I cant dig up address history which would show me sending to Ledger

sorry for confusion.
legendary
Activity: 3612
Merit: 5297
https://merel.mobi => buy facemasks with BTC/LTC
I sent the coins purchased, to Jaxx, then to Jaxx to Ledger, Jaxx to exchange, and exchange to jaxx, jaxx to ledger,    I was  only using Jaxx temporary- Coins in and Coins out , I copied the seed for the Jaxx down while using it, but discard after I was finished transferring, and deleted the app totally, as I didn't intend to keep that wallet on my phone & figure if i need to use Jaxx again,  I would just create a new Jaxx wallet altogether.



I was hoping maybe if I had most words, Script may narrow it down like a few hundred possibilities. (due to knowing the rest of the words and the last word)   in which i Can manually try to restore the wallet to a Desktop wallet or something,  as doing it on the Ledger would take forever.

If it is near impossible, its okay.  My responsibility, not sure effort is worth a small percentage of success, as it starting to sound like all kinds of complicated.


It's getting a bit confusing... Are there still coins in your Jaxx wallet, or are they all on an exchange or on your ledger wallet?

Also, most exchanges will show deposit/withdraw history, as will your ledger wallet, so it shouldn't be to hard to dig up addresses belonging to that jaxx wallet.
As soon as you have a couple of addresses belonging to the wallet (and the seed phrase missing 1 word), it should be fairly easy to brute force the seed phrase (like HCP already said: it's only ~44k combinations)
newbie
Activity: 24
Merit: 0
I sent the coins purchased, to Jaxx, then to Jaxx to Ledger, Jaxx to exchange, and exchange to jaxx, jaxx to ledger,    I was  only using Jaxx temporary- Coins in and Coins out , I copied the seed for the Jaxx down while using it, but discard after I was finished transferring, and deleted the app totally, as I didn't intend to keep that wallet on my phone & figure if i need to use Jaxx again,  I would just create a new Jaxx wallet altogether.



I was hoping maybe if I had most words, Script may narrow it down like a few hundred possibilities. (due to knowing the rest of the words and the last word)   in which i Can manually try to restore the wallet to a Desktop wallet or something,  as doing it on the Ledger would take forever.

If it is near impossible, its okay.  My responsibility, not sure effort is worth a small percentage of success, as it starting to sound like all kinds of complicated.


 




 


legendary
Activity: 3612
Merit: 5297
https://merel.mobi => buy facemasks with BTC/LTC
Without knowing any of the addresses, then it is going to be problematic to determine whether or not you have found the correct seed, as you have nothing to test against.

If the OP's wallet cointains sufficient BTC, it might be worth setting up a bitcore node with full addressindex. That way you can rip trough the ~40k seed phrases (only keep the valid ones if the last word is a checksum), generate the xprv, derive the first 100 addresses and the first 100 change addresses and check them for any activity...

Since bitcore with all those indexes turns on takes a couple weeks to fully sync, and the script will probably only be able to test a couple phrases a second (untested, but since the script has to iterate to the next variation, generate an xprv, derive 200 addresses, use a json-rpc query, parse the results => i don't think you'll be able to process hundreds of iterations a second), this would take several weeks to brute-force, but if the incentive is big enough, it might still be worth it.
HCP
legendary
Activity: 2086
Merit: 4363
Without knowing any of the addresses, then it is going to be problematic to determine whether or not you have found the correct seed, as you have nothing to test against.

A couple of tests on a random 24 word seed shows that there can be multiple different words used in any given position that will result in a "valid" seed.
Quote
Start: 2017-06-26 18:13:47.809000
talk wrong soccer file strike clerk cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike draft cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike hover cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike radio cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike rotate cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike search cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike curious cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike fitness cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
talk wrong soccer file strike volcano cheap blush worth torch scan retreat pyramid soldier swim census receive impact ripple flee accuse undo year exotic
End: 2017-06-26 18:13:49.135000
Total: 0:00:01.326000
You could be looking at something in excess of 200 valid seeds assuming a relatively similar "hit" rate of 9-10 words per position... So how would you know that you'd generated the correct one? Surely you must have a record of an address somewhere that you received coins to? or even sent coins to? so you might be able to find an address from a transaction ID or something??

Am I correct in understanding that you have forgotten your PIN and are concerned that your hardware wallet is going to get erased and reset if you guess it wrong 3 times?
Pages:
Jump to: