seedrecover.py supports this via the same tokenlist feature used for password recovery.
Descrambling is currently practical for 12-word seeds. For 24-word seeds it is feasible only when the position of at least 12 words is already known.
How it works
A tokenlist file lists the words you have, with anchors for words whose position you know.seedrecover.py generates all valid orderings of those words, filters by BIP39 checksum, then tests each candidate against your address.
The tokenlist syntax is the same as for password recovery. See the BTCRecover tokenlist documentation for the full syntax reference.
A sample tokenlist for a 12-word seed with 6 words of known position and 6 unknown is available at btcrecover/test/test-listfiles/SeedTokenListTest.txt in the repository.
Requirements
You must always specify both of these flags when using a tokenlist for seeds:--mnemonic-length— the number of words in your seed (12 or 24)--language— the BIP39 wordlist language (e.g.EN)
btcrecover/wordlists/.
Example: tokenlist-based descrambling
| Flag | Purpose |
|---|---|
--no-dupchecks | Allows the same word to appear in multiple positions during candidate generation |
--mnemonic-length 12 | Tells the tool to generate 12-word combinations |
--language EN | Uses the English BIP39 wordlist |
--dsw | Disables seed word validation (required when words may appear in unexpected positions) |
--wallet-type BIP39 | Selects the BIP39 wallet type |
--addr-limit 1 | Checks only the first derived address per candidate |
--addrs | The known receiving address to test against |
--tokenlist | Path to the tokenlist file |
Debugging: listing generated candidates
You can print all seed candidates that will be tested using--listseeds (also known as --listpass in password recovery mode). This is useful for verifying your tokenlist before running a full search:
candidates.txt without testing them.
Seedlist approach: split generation from testing
For very large candidate sets, you can split the work into two stages:- Generate candidates to a file using
--listseeds - Test candidates from that file using
--seedlist
Stage 1: generate candidates
Stage 2: test from the seedlist
--listseeds output produces it. Do not manually edit the format.
Related pages
Seed recovery overview
How seedrecover.py works and the four automatic search phases
Derivation paths and altcoins
Select the right wallet type and derivation path for your coin