Skip to content

Descrambling 12 Word Seeds

YouTube Video can be found here: https://youtu.be/ruSF8OKwBRk

Three types of token files are provided for these tests. Token files that will find the result on their first check, token files that will find the result as the last possible combination and those which will find it at some point inbetween.

The idea is that these allow you to quickly verify that things are working (finding on the first result), get an idea for how long a full run might take (last result) and also try something representative of a real world situation.

If you are just descrambing a 12 word seed, there isn't much point running without --no-eta, as the number of seeds to be tested can be easily worked out and the seed generator can easily keep up with at least 48 threads.

Note: The YouTube video and examples were made before OpenCL acceleration was added to Blockchain.com wallets and can give a 2x performance improvement. (See GPU Accleration for more info)

Performance

On a 48 core Linode you can expect to... * Descramble a 12 word Electrum seed in less than 15 minutes… * Descramble a 12 word BIP39 seed in less than 50 minutes…

You can expect things to take about 5 times this long on a current (mid 2020), mid-range CPU.

Electrum

Legacy Wallet (Last Result)

Using Tokenlist lastcombination_electrum.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
book 
fit 
fly 
ketchup 
also 
elevator 
scout 
mind 
edit 
fatal 
where 
rookie

Command

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --addr-limit 1 --addrs 1CU62HPowYSxhHiiNu1ukSbMjrkGj4x52i --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/lastcombination_electrum.txt --wallet-type electrum2

Segwit Wallet

Using Tokenlist randomcombination_electrum.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
social 
shoe 
spin 
enlist 
sponsor 
resource 
result 
coffee 
ocean
gas 
file 
paddle 

Command

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type electrum2 --addr-limit 1 --addrs bc1qtylwmarke39nysxepdx5xzfatvrlel5z8m0jx2 --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/randomcombination_electrum.txt --bip32-path "m/0'/0"

BIP39

Ethereum Address (Default derivation path for Trezor, MEW)

Using Tokenlist randomcombination_bip39.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
boy
hidden
kidney
famous
spring
convince
rich
season
gloom
ocean
husband
attitude

Command

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type ethereum --addr-limit 1 --addrs 0x66F9C09118B1C726BC24811a611baf60af42070A --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/randomcombination_bip39.txt --bip32-path "m/44'/60'/0'/0"

Legacy BTC Address (First Result)

Using Tokenlist firstcombination_bip39.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
boy
attitude
convince
spring
husband
gloom
season
rich
famous
kidney
hidden
ocean

Command

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type BIP39 --addr-limit 1 --addrs 17GR7xWtWrfYm6y3xoZy8cXioVqBbSYcpU --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/firstcombination_bip39.txt

Legacy BTC Address (Last Result)

Using Tokenlist lastcombination_bip39.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ocean
hidden
kidney
famous
rich
season
gloom
husband
spring
convince
attitude
boy
Command
python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type BIP39 --addr-limit 1 --addrs 17GR7xWtWrfYm6y3xoZy8cXioVqBbSYcpU --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/lastcombination_bip39.txt

Litecoin Native Segwit Address (Seed with Positional Anchors for known words, last word as any valid BIP39 word starting with 'B')

Using Tokenlist fixedwords_bip39.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
^1^ocean ^2^ocean ^3^ocean
^1^hidden ^2^hidden ^3^hidden
^1^kidney ^2^kidney ^3^kidney
^4^famous
^5^rich
^6^season
gloom
husband
spring
convince
attitude
baby bachelor bacon badge bag balance balcony ball bamboo banana banner bar barely bargain barrel base basic basket battle beach bean beauty because become beef before begin behave behind believe below belt bench benefit best betray better between beyond bicycle bid bike bind biology bird birth bitter black blade blame blanket blast bleak bless blind blood blossom blouse blue blur blush board boat body boil bomb bone bonus book boost border boring borrow boss bottom bounce box boy bracket brain brand brass brave bread breeze brick bridge brief bright bring brisk broccoli broken bronze broom brother brown brush bubble buddy budget buffalo build bulb bulk bullet bundle bunker burden burger burst bus business busy butter buyer buzz

Command

python seedrecover.py --no-dupchecks --mnemonic-length 12 --language EN --dsw --wallet-type BIP39 --addr-limit 1 --addrs ltc1q9srpp39hev6dpsxjjp8t5g0m3z7509vc9llalv --tokenlist ./docs/Usage_Examples/2020-05-02_Descrambling_a_12_word_seed/fixedwords_bip39.txt --bip32-path "m/84'/2'/0'/0"