Implement a brute force algorithm to find three missing word from BIP39 seed

10.6k views Asked by At

I lost 3 middle words of my 24 words seed phrase for a nano ledger hardware wallet.

As an example (not my real seed phrase)

pledge horror unfair category a.... xxxxxx a...... core abuse tenant crew captain insect angry again deposit detail similar arrest kind copy pony door brass

So I know the missing words in position 5 and 7 start with a and I don't have any clue for word number 6.

I know for sure an ethereum public address that I used back in 2017, but I am not sure about my BTC address.

I believe that cracking the seed phrase is doable, but as I am not a programmer (I have a beginner level in python for data science) I don't know how to do it.

So far, I have explored:

  • BTCRecover but it only handles one missing word and 3 typos
  • Seed Savior but it only handles 1 missing words

Does anyone know how to solve this problem in a practical manner? I understand that the theoretical solution to this problem is trivial but I need to implement it, which is far from trivial for me.

2

There are 2 answers

7
Crypto Guide On BEST ANSWER

Just use BTCRecover (My updated fork here: https://github.com/3rdIteration/btcrecover) with all the defaults except for adding --big-typos 3

When prompted for your seed, just put in an X in place of the invalid words. (Any placeholder will do as long as it's not a BIP39 word)

If you are even slightly unsure of your address, run it once (with what you think it is) and if it doesn't find anything, run it against an AddressDB. (https://btcrecover.readthedocs.io/en/latest/Creating_and_Using_AddressDB/)

Either way it should take a few days to search all possible seeds each time, so quite straightfoward as far as seed recoveries go.

3
Mr Matthew Kevin Hutchins On

Use one of these, I’ve seen guys break into accounts that were missing 8 words with the solver-server.

BIP39-Solver-CPU: This is the CPU benchmark tool he wrote in Rust to get an idea of how long it will take do solve on a CPU for certain number of unknown words.

https://github.com/johncantrell97/bip39-solver-cpu

BIP39-Solver-GPU: This is the actual GPU version he ran on each worker GPU to solve this problem.

https://github.com/johncantrell97/bip39-solver-gpu

BIP39-Solver-Server: This is the actual server he ran that handled distributing the work to all the workers.

https://github.com/johncantrell97/bip39-solver-server