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?
Recovering BTC seed using a custom token list
13 replies 293 views
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:
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?
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...
Ian Colemans 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?
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?
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.
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?
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?
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 Colemans page.
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.
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.
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.
Thank you very much
Related topics
- Creating a list of non-zero wallets and their balances using Python 4
- Curious about recovering BTC from 2010/2011 7
- Recovering a Bitcoin wallet and address 8
- Looking for wallet software that supports custom P2SH redeem scripts? 19
- How much to pay for sending your BTC 19
- Using two different Bitcoin versions without messing up blockchain data 3