Author

Topic: BTCrecover seed recovery with custom token list (Read 344 times)

newbie
Activity: 2
Merit: 0
Thank you very much
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
I need help setting up a token list. 2 known spots. Then 8 known words out of order. 12 word mnemonic. I know my wallet and derivation path. 10 workers. I narrowed the list down to about 600 words. What is the proper way to run this.
Put anchors (^1^) to the 2 words with known positions, randomly place the 8 words on any line then put the 600 words (separated by space) in each of the last two lines.

for example (similar but easier version for testing, can be solved within a minute with average hardware);
  • 8 known positions
  • 2 known words out of order
  • 2 unknown words from 300 possible words

seed-arrange-token.txt:
Code:
^1^whip
^2^atom
^3^voice
^4^trade
^5^front
^6^object
^7^pen
^8^satisfy
weapon
veteran
abandon ability able about above absent absorb abstract absurd abuse access accident account accuse achieve acid acoustic acquire across act action actor actress actual adapt add addict address adjust admit adult advance advice aerobic affair afford afraid again age agent agree ahead aim air airport aisle alarm album alcohol alert alien all alley allow almost alone alpha already also alter always amateur amazing among amount amused analyst anchor ancient anger angle angry animal ankle announce annual another answer antenna antique anxiety any apart apology appear apple approve april arch arctic area arena argue arm armed armor army around arrange arrest arrive arrow art artefact artist artwork ask aspect assault asset assist assume asthma athlete atom attack attend attitude attract auction audit august aunt author auto autumn average avocado avoid awake aware away awesome awful awkward axis baby bachelor bacon badge bag balance balcony ball bamboo banana banner bar barely bargain barrel base basic basket battle beach bean beauty because become beef before begin behave behind believe below belt bench benefit best betray better between beyond bicycle bid bike bind biology bird birth bitter black blade blame blanket blast bleak bless blind blood blossom blouse blue blur blush board boat body boil bomb bone bonus book boost border boring borrow boss bottom bounce box boy bracket brain brand brass brave bread breeze brick bridge brief bright bring brisk broccoli broken bronze broom brother brown brush bubble buddy budget buffalo build bulb bulk bullet bundle bunker burden burger burst bus business busy butter buyer buzz cabbage cabin cable cactus cage cake call calm camera camp can canal cancel candy cannon canoe canvas canyon capable capital captain car carbon card cargo carpet carry cart case cash casino castle casual cat catalog catch category cattle caught cause caution cave ceiling celery cement couch subway
abandon ability able about above absent absorb abstract absurd abuse access accident account accuse achieve acid acoustic acquire across act action actor actress actual adapt add addict address adjust admit adult advance advice aerobic affair afford afraid again age agent agree ahead aim air airport aisle alarm album alcohol alert alien all alley allow almost alone alpha already also alter always amateur amazing among amount amused analyst anchor ancient anger angle angry animal ankle announce annual another answer antenna antique anxiety any apart apology appear apple approve april arch arctic area arena argue arm armed armor army around arrange arrest arrive arrow art artefact artist artwork ask aspect assault asset assist assume asthma athlete atom attack attend attitude attract auction audit august aunt author auto autumn average avocado avoid awake aware away awesome awful awkward axis baby bachelor bacon badge bag balance balcony ball bamboo banana banner bar barely bargain barrel base basic basket battle beach bean beauty because become beef before begin behave behind believe below belt bench benefit best betray better between beyond bicycle bid bike bind biology bird birth bitter black blade blame blanket blast bleak bless blind blood blossom blouse blue blur blush board boat body boil bomb bone bonus book boost border boring borrow boss bottom bounce box boy bracket brain brand brass brave bread breeze brick bridge brief bright bring brisk broccoli broken bronze broom brother brown brush bubble buddy budget buffalo build bulb bulk bullet bundle bunker burden burger burst bus business busy butter buyer buzz cabbage cabin cable cactus cage cake call calm camera camp can canal cancel candy cannon canoe canvas canyon capable capital captain car carbon card cargo carpet carry cart case cash casino castle casual cat catalog catch category cattle caught cause caution cave ceiling celery cement couch subway

Command:
Code:
python seedrecover.py --tokenlist seed-arrange-token.txt --mnemonic-length 12 --language en --addrs 1AtnNzFFbvVAASVJsokys3cxA3Ts9pHjyt --bip32-path "m/44'/0'/0'/0" --addr-limit 1 --dsw --no-eta --no-dupcheck

Correct mnemonic:
Code:
whip atom voice trade front object pen satisfy veteran subway weapon biology


Yours should be similar to this:
Code:
known words out of order A
known words out of order B
^3^known position A
known words out of order C
known words out of order D
known words out of order E
^7^known position B
known words out of order F
known words out of order G
known words out of order H
600 words list A
600 words list B

The command should indicate your known derivation path down to the "chain_index" with --bip32-path arg like in the example (BIP44, Bitcoin, first account, external chain).
If you know the address' index, that would be great since you can indicate how many address to derive with --addr-limit arg.
Or use the first address of your wallet if you know it, that'll be faster with --addr-limit 1.
newbie
Activity: 2
Merit: 0
I need help setting up a token list. 2 known spots. Then 8 known words out of order. 12 word mnemonic. I know my wallet and derivation path. 10 workers. I narrowed the list down to about 600 words. What is the proper way to run this.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
That would mean this argument is ok, right?
--bip32-path "m/44'/60'/0'/0"
Since you've said that the "descramble example" worked which is using a command with that arg.
Then it's okay because it wont look for the "common derivation path" if bip39-path arg is specified.
legendary
Activity: 952
Merit: 1386


Quote
Are you able to reuse the seed and see which address you see?

Reuse which seed where?

If you know exactly how you configured metamask (in the past), generate a new seed, do the same configuration in metamask, see which address you receive and then find the proper path on Coleman’s page.
newbie
Activity: 5
Merit: 14
Yes, sorry, I didn't mean the unzipping itself was the problem, but there was something not quite right with my folder.

I didn't use hardened addresses, and I'm pretty sure it was the second account in Metamask, created in Metamask.

That would mean this argument is ok, right?
--bip32-path "m/44'/60'/0'/0"

But if the wallet was not created in Metamask, but rather a Ledger was added to Metamask, then I would need to use the other derivation path?

So I guess my safest bet is just to use the ETH file with both of those derivation paths?


Quote
Are you able to reuse the seed and see which address you see?

Reuse which seed where?
legendary
Activity: 952
Merit: 1386
Yes, I found the same information when googling, like you wrote, Metamask derivation path is m’/44’/60’/0/0, and Ledger is m’/44’/60’. They are quite similar, but the last zeroes are missing, but maybe that's not important.

It is. For example:
Code:
walk gate various upon patient only athlete focus tiny decade advice party
produces:
BIP44 - m/44'/60'/0'/0/0 - 0x71d2b3e574B13C99dC725467b31F296b5C3c6Fe4
BIP32/Ledger - m/44'/60'/0'/0 - 0x25Cd4b8eB16e5d926Ec19675c364bCe7e1E90f8f

I think you did not use hardened addresses, but there is still a chance.

m/44'/60'/0'/0/0' - 0xB4d14680ddfC11944250e3aD59268B44ba49A08c
m/44'/60'/0'/0' - 0x9EB955c03A8FF3032262D58548F0B44e5a77D1Ba

Are you able to reuse the seed and see which address you see?
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
-snip-
What happens if I remove the argument --bip32-path "m/44'/60'/0'/0, will it find all derivation paths or does it just look for some default one?
It will look from all the common derivation paths listed in "/derivationpath-lists/ETH.txt".
Your command and token file are good, so if it's not the path, then there's definitely something that went wrong.

Thanks for the replies, seems there was something wrong with my BTCRecover package, after unzipping the downloaded package once more, the Descramble example worked.
Good to know that it works now. But I doubt it's because of "unzipping" issue.
newbie
Activity: 5
Merit: 14
Yes, I found the same information when googling, like you wrote, Metamask derivation path is m’/44’/60’/0/0, and Ledger is m’/44’/60’. They are quite similar, but the last zeroes are missing, but maybe that's not important.

Actually come to think of it, Ledgers come with a 24 word seed phrase, and since the one I'm looking for has 12, so most likely the derivation Metamask derivation path should work?

What happens if I remove the argument --bip32-path "m/44'/60'/0'/0, will it find all derivation paths or does it just look for some default one?
legendary
Activity: 952
Merit: 1386
Ian Coleman’s page says you should use m/44'/60'/0'/0 for bip32/ledger.
If you have your metamask and wallet, you may play with another seed and his page to see which path produces the correct results.
As for number of addresses to generate- no idea, but usually the first one is used. Maybe in your case it was different, but then you would know it, no?

newbie
Activity: 5
Merit: 14
Thanks for the replies, seems there was something wrong with my BTCRecover package, after unzipping the downloaded package once more, the Descramble example worked.

Quote
Try to remove the additional parameter: --bip32-path "m/44'/60'/0'/0" since it should be able to work without it (but slower).

Is there some way to see the derivation path of an ETH wallet? I'm worried I might miss the seed phrase because of a too low addr-limit and/or wrong bip32-path, but at the same time changing/removing these arguments can make a big difference to how long it takes to run the script.
I just know the address is a Metamask wallet connected to a Ledger...
legendary
Activity: 952
Merit: 1386

1. The first thing is that I want to want to use a list with 12 words, but the first two words and positions are known.

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0xMyAddress --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/randomcombination_bip39.txt --bip32-path "m/44'/60'/0'/0"


Of course you replaced part "./docs/Usage_...." with path to your token list?

Are you able to reproduce example from page: https://btcrecover.readthedocs.io/en/latest/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/Example_Descrambling_a_12_word_seed/#ethereum-address-default-derivation-path-for-trezor-mew ?

By the way: if you enter your seed on the page: https://iancoleman.io/bip39/ and select coin ETHEREUM, does it display your expected address?
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
1. The token file and command look good.
Try to remove the additional parameter: --bip32-path "m/44'/60'/0'/0" since it should be able to work without it (but slower).
If it works, then you've given an incorrect path.
If it didn't.. can you tell which options have you been choosing when prompted for the seed type?

2. In that case, put those in the same lines of words 3 and 4, seedrecover.py will try those words but wont mix them with the words in the same line:
Code:
...
word3 word3a word3b
word4 word4a word4b word4c
...
newbie
Activity: 5
Merit: 14
Hello,

I'm trying to figure out how to do two different scenarios with a token list for a 12 word seed phrase recovery. I've been reading the docs and some threads on this forum, but for some reason I can't get it to work.

1. The first thing is that I want to want to use a list with 12 words, but the first two words and positions are known. I thought my list file should look like this:

Code:
+ ^1^word1
+ ^2^word2
word3
word4
word5
word6
word7
word8
word9
word10
word11
word12

Just to try if it is working at all and to save some time, I created a new empty wallet, added the 12 words to my token list file and added + ^num^ for each of the first 10 words (according to the pattern above), assuming it would finish in a few seconds, but it just keeps saying "Seed not found, sorry...". What am I doing wrong? I am sure the words and positions are correct. Does it not work with empty wallets?

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0xMyAddress --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/randomcombination_bip39.txt --bip32-path "m/44'/60'/0'/0"

2. The second scenario is to add additional words to my list that I *think* could be words 3 and 4, but I am not sure if they really are part of the seed phrase at all, can that be done?
Jump to: