Mode 3: Recover a passphrase using a structured pattern with wildcard positions
Mode 3 is ideal when you remember the structure of your passphrase but not every character. You define a mask pattern where known characters are typed literally and unknown positions are replaced by a wildcard placeholder that specifies the character class to try (lowercase, uppercase, digit, special, etc.).
This is far more efficient than Mode 2 (full brute-force) because you constrain the search space to only the characters that make sense at each position.
Mode 3 fully supports GPU acceleration (CUDA and OpenCL) in the Pro version.
A mask is a string passed to -mask. Literal characters are kept as-is. Variable positions use a two-character placeholder starting with ?:
| Placeholder | Character set | Size |
|---|---|---|
?l | Lowercase letters: a–z | 26 |
?u | Uppercase letters: A–Z | 26 |
?d | Digits: 0–9 | 10 |
?s | Special characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ | 32 |
?a | All: uppercase + lowercase + digits + special | 94 |
?b | Hexadecimal digits: 0–9A–F | 16 |
# "pass" followed by 3 unknown digits → 1,000 combinations
-mask "pass?d?d?d"
# Known prefix, one unknown lowercase, known suffix → 26 combos
-mask "My?lSecret"
# Fully unknown 6-char lowercase word → 26^6 = 308,915,776 combos
-mask "?l?l?l?l?l?l"
# Mixed: known chars + mixed placeholders
-mask "Bitcoin?d?d?d?s"
# All characters at each position (full brute at fixed length)
-mask "?a?a?a?a?a?a?a?a"
The total search space is the product of the character-set size at each variable position. For example, pass?d?d?d has 10 × 10 × 10 = 1,000 combinations.
wrecover -m 3 -mf "word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12" -mask "pass?d?d?d" -addr "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" -wlang en -ws -wf recovery.wrec -wp "this workfile password"
wrecover -m 3 -mf "word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12" -mask "?u?l?l?l?d?d?s" -addr "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" -wlang en -ws -wf recovery.wrec -gpu -grid 2048 -gblock 256 -wp "this workfile password"
# CPU
wrecover -wi -wf recovery.wrec -wp "this workfile password"
# GPU (Pro)
wrecover -wi -wf recovery.wrec -wp "this workfile password" -gpu -grid 2048 -gblock 256
| Option | Description | Required |
|---|---|---|
-m 3 | Select Mode 3 | Yes |
-mf "<full mnemonic>" | Complete, known seed phrase (all words) | Yes |
-mask "<pattern>" | Mask pattern (literal chars + ?l ?u ?d ?s ?a ?b wildcards) | Yes |
-addr <address> | Target blockchain address | Yes |
-wlang <code> | BIP39 wordlist language | Yes |
-ws | New search | Yes* |
-wi | Resume from work file | Yes* |
-wf <file.wrec> | Work file path | Yes |
-dpath <path> | Override derivation path | No |
-t <N> | CPU threads (Free: max 10; Pro: unlimited) | No |
-gpu | Enable GPU (Pro only) | No |
-grid <N> | GPU grid size (Pro, default 256) | No |
-gblock <N> | GPU threads/block (Pro, default 256, max 256) | No |
-wp <password> | Encrypt work file | No |
-save-only | Create work file only | No |
-startp <N> | Start at offset N (Pro only) | No |
-endp <N> | Stop at offset N (Pro only) | No |
* Use either -ws (new search) or -wi (resume) — not both.
-wlang)| Code | Language |
|---|---|
en | English |
es | Spanish |
fr | French |
it | Italian |
| Address format | Type | Default derivation path |
|---|---|---|
Starts with 1 | Bitcoin Legacy (P2PKH) | m/44'/0'/0'/0 |
Starts with 3 | Bitcoin SegWit P2SH | m/49'/0'/0'/0 |
Starts with bc1q | Bitcoin Native SegWit | m/84'/0'/0'/0 |
Starts with 0x | Ethereum | m/44'/60'/0'/0 |
The search space is the product of each wildcard character-set size. Example: ?u?l?l?d?d?d = 26 × 26 × 26 × 10 × 10 × 10 = 17,576,000 combinations.
| Hardware | Passphrase throughput |
|---|---|
| CPU — per thread (Free & Pro) | 700–1,200 passphrases/sec |
| NVIDIA Tesla T4 (Pro) | ~187,000 passphrases/sec |
| NVIDIA RTX PRO 6000 (Pro) | ~1,750,000 passphrases/sec |
| N× GPUs (Pro) | Linear: N × single-gpu -grid 2048 -gblock 256 throughput |
Free version: CPU only, max 10 threads. Pro: unlimited threads + GPU. Throughput scales linearly with thread count on CPU.