← Back to Documentation

Passphrase Mask

Mode 3: Recover a passphrase using a structured pattern with wildcard positions

📋 Overview

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.

💡 GPU Supported

Mode 3 fully supports GPU acceleration (CUDA and OpenCL) in the Pro version.

🔐 Mask Syntax

A mask is a string passed to -mask. Literal characters are kept as-is. Variable positions use a two-character placeholder starting with ?:

PlaceholderCharacter setSize
?lLowercase letters: a–z26
?uUppercase letters: A–Z26
?dDigits: 0–910
?sSpecial characters: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~32
?aAll: uppercase + lowercase + digits + special94
?bHexadecimal digits: 0–9A–F16

Mask examples

# "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"

💡 Total combinations

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.

🚀 Commands

New search — CPU

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"

New search — GPU (Pro)

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"

Resume from work file

# 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

📖 Parameter Reference

OptionDescriptionRequired
-m 3Select Mode 3Yes
-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 addressYes
-wlang <code>BIP39 wordlist languageYes
-wsNew searchYes*
-wiResume from work fileYes*
-wf <file.wrec>Work file pathYes
-dpath <path>Override derivation pathNo
-t <N>CPU threads (Free: max 10; Pro: unlimited)No
-gpuEnable 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 fileNo
-save-onlyCreate work file onlyNo
-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.

🌎 Languages & Address Types

Languages (-wlang)

CodeLanguage
enEnglish
esSpanish
frFrench
itItalian

Address types (auto-detected)

Address formatTypeDefault derivation path
Starts with 1Bitcoin Legacy (P2PKH)m/44'/0'/0'/0
Starts with 3Bitcoin SegWit P2SHm/49'/0'/0'/0
Starts with bc1qBitcoin Native SegWitm/84'/0'/0'/0
Starts with 0xEthereumm/44'/60'/0'/0

⚡ Performance

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.

HardwarePassphrase 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 vs Pro

Free version: CPU only, max 10 threads. Pro: unlimited threads + GPU. Throughput scales linearly with thread count on CPU.

← Back to Documentation