PySeedRecover: Find correct seed phrase in case of missing words, typos, wrong orders

I just published PySeedRecover 1.0.1:

It can be used to find correct seed phrases if a word is missing or a word was misread or misspelled. Partly, it can also help if the order of the words is wrong. (It just checks for exchanges of rows and columns in rectangular notations, because checking all permutations of the words is far too much.)

It can probably not help much if you can restore with a seed phrase, but get to a wrong/empty wallet. In this case, other errors (mixed-up with other seed phrase, missing or wrong passphrase on Ledgers and Trezors, …) are far more likely.

If you have Python 3.7+ and pip, it can simply be installed by: pip install PySeedRecover

Then, seedrecover -h gives you a usage information.

The basic modes of operation are:

seedrecover word1 … wordN

If words are not in the word list of BIP-39, the closest match(es) in the word list are tried. If words are missing (from the next number that could be a valid seed phrase), all 2048 words of the word list are tried in all possible positions.

seedrecover -m 1 24 -- word1 … wordN

If you know or suspect that you have only missed a word in first or last position of a 24 word seed phrase (for example), you can give the positions you suspect with -m to drastically reduce the number of checked seed phrases.

seedrecover -a stake1...abcdef stake1...ghijkl stake1...mnopqr -- word1 … wordN

If you get too many results to manually check, the script can check against a number of given stake addresses. You can leave out part of the stake address(es) and replace them by .... Just in case, give all stake addresses you know of all of your wallets. We quite often have that they were mixed up and the seed phrase is, in fact, for another wallet.

seedrecover -s 1 word1 … wordN

Also check all words that have an edit distance of 1 to the given words. Sometimes typos may lead to other words also on the BIP-39 word list. These cannot be found by the validation of the single words done in most wallet apps.

seedrecover -b mainnetAPIKEY word1 … wordN

Check stake addresses on for previous activity. This can be used if you do not know the stake address you are looking for. You need to get an API key on and should keep in mind that the daily requests are limited (50 000 for the free accounts).

Also check the examples in the README linked above.


after using -b API, and i got :

Length not set. Using smallest length for given phrase.
1 of 15 words missing.
Seed phrases checked:     61_440 total,      1_881 fulfilled checksum,      1_881 without repetitions

where these checksums saved in windows?

If -b doesn’t give you an output, it means that none of the checked seed phrases lead to a wallet which has ever been used according to Blockfrost.

You can nevertheless put the stake addresses and the corresponding seed phrases into a text file with seedrecover … > seedphrases.txt, where you leave out the -b option, but keep all the other options as they are. It should give you a file with exactly the 1881 lines of valid seed phrases.

1 Like

sir you are awesome. thanks

:white_check_mark: :white_check_mark: @everyone (GUYS) :white_check_mark: :white_check_mark: this man is the best human ever I met in crypto environment!

he is true genius, 100% trustworthy and humble person.

he helped me to recover my wallet(s) and this message is the tiniest thing i could do to him.

Thanks again sir :saluting_face: @HeptaSean :heart: :innocent:

1 Like

This worked like a charm.
I was missing a word because my dog chew the corner of my notebook.
I was able to find the missing word using this.
I probably could have found it even if I was missing two words or 3. And knowing the positions it is really important.
Thank you lots @HeptaSean

1 Like