Recovering BTC seed using a custom token list

13 replies 293 views
leo.yieldMember
Posts: 6 · Reputation: 163
#1Mar 8, 2019, 08:37 AM
Hey everyone, I’m trying to work out how to handle two different situations with a token list for recovering a 12-word seed phrase. I've gone through the documentation and some threads here, but for some reason, I can't get it to function properly. First, I want to use a list with 12 words, where the first two words and their positions are already known. I thought my list file should be set up like this: To see if it actually works and to save some time, I created a new empty wallet, put the 12 words in my token list file, and added + ^num^ for the first 10 words (like the pattern above). I figured this would finish in a few seconds, but it just keeps saying "Seed not found, sorry...". What’s going wrong? I’m confident that the words and positions are right. Does this 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" For the second scenario, I want to add some extra words that I *think* could be words 3 and 4. But I’m not sure if they actually belong in the seed phrase. Is that possible?
3 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#2Mar 8, 2019, 10:08 AM
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:
5 Reply Quote Share
gw3i1337Full Member
Posts: 148 · Reputation: 495
#3Mar 8, 2019, 03:56 PM
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?
4 Reply Quote Share
leo.yieldMember
Posts: 6 · Reputation: 163
#4Mar 9, 2019, 04:10 AM
Thanks for the replies, seems there was something wrong with my BTCRecover package, after unzipping the downloaded package once more, the Descramble example worked. 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...
1 Reply Quote Share
gw3i1337Full Member
Posts: 148 · Reputation: 495
#5Mar 9, 2019, 06:28 AM
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?
3 Reply Quote Share
leo.yieldMember
Posts: 6 · Reputation: 163
#6Mar 9, 2019, 07:23 AM
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?
8 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#7Mar 10, 2019, 06:16 PM
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. Good to know that it works now. But I doubt it's because of "unzipping" issue.
6 Reply Quote Share
gw3i1337Full Member
Posts: 148 · Reputation: 495
#8Mar 13, 2019, 02:50 AM
It is. For example: 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?
3 Reply Quote Share
leo.yieldMember
Posts: 6 · Reputation: 163
#9Mar 13, 2019, 08:07 AM
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? Reuse which seed where?
3 Reply Quote Share
gw3i1337Full Member
Posts: 148 · Reputation: 495
#10Mar 13, 2019, 09:04 AM
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.
1 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#11Mar 13, 2019, 09:52 AM
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.
7 Reply Quote Share
mr_cobraFull Member
Posts: 64 · Reputation: 524
#12Mar 13, 2019, 10:53 AM
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.
1 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#13Mar 13, 2019, 04:11 PM
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 positions2 known words out of order2 unknown words from 300 possible words seed-arrange-token.txt: Command: Correct mnemonic: Yours should be similar to this: 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 <number> arg. Or use the first address of your wallet if you know it, that'll be faster with --addr-limit 1.
6 Reply Quote Share
mr_cobraFull Member
Posts: 64 · Reputation: 524
#14Mar 13, 2019, 10:19 PM
Thank you very much
3 Reply Quote Share

Related topics