CLI REFERENCE · v0.1

SeedCrypt Recover — Command Reference

Every subcommand, every flag, defaults, examples. Open-source CLI distributed under the MIT license. Build it from source — no binaries are signed or hosted on this page.

← Back to overview

Install & build

SeedCrypt Recover is distributed as Rust source code only — there are no pre-built binaries. Install Rust (rustup) and build with Cargo. Same instructions are used on macOS, Linux, and Windows.

From crates.io / GitHub (recommended)
# Install Rust if you don’t have it curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Clone & build the release binary git clone https://github.com/femto7/seedcrypt-recover cd seedcrypt-recover cargo build --release # Binary lives at: ./target/release/seedcrypt-recover --help

For air-gapped use, run cargo vendor on a connected machine, then transfer the directory and pass --offline on the air-gapped host.

Global options

seedcrypt-recover [--help] [--version] <COMMAND>
FlagDescription
-h, --helpPrint help and exit.
-V, --versionPrint version and exit.

Subcommands: missing · typo.

missing — Recover N missing words at known positions

seedcrypt-recover missing --mnemonic <STRING> [--address <ADDR>] [--passphrase <STRING>] [--account-start <NUM>] [--account-end <NUM>] [--address-start <NUM>] [--address-end <NUM>]

Replace each unknown word with ? in the mnemonic. Up to 3 missing words are supported (20484 = 17 billion combinations is impractical). The mnemonic must contain 12, 15, 18, 21, or 24 words total. Without --address, the tool returns the first BIP-39 checksum-valid candidate (cheap but ambiguous). With --address, every checksum-valid candidate is re-derived along all six standard derivation paths (BIP-44/49/84/86 for BTC-likes, m/44'/60' for ETH, m/44'/195' for TRX) and validated against your address.

Flags

FlagTypeDefaultDescription
--mnemonic REQUIREDstringThe full mnemonic with ? in place of each unknown word. Single-quote the whole string in your shell to protect spaces.
--address OPTIONALstringTarget wallet address. If absent, the tool stops at the first checksum-valid candidate. Strongly recommended: without it, many seeds pass the checksum.
--passphrasestring""BIP-39 25th-word passphrase. Empty by default. Case-sensitive; preserves Unicode normalization (NFKD).
--account-startu320First account index to test. Path m/PURPOSE'/COIN'/account'/0/i.
--account-endu320Last account index (inclusive). Increase if your wallet uses multiple accounts.
--address-startu320First address index to test per account.
--address-endu329Last address index (inclusive). Matches btcrecover's --addr-limit default.

Examples

1 — One missing word, no address (checksum-only)
Fastest mode. Returns the first of 128 (avg) checksum-valid candidates.
seedcrypt-recover missing \ --mnemonic "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon ?"
2 — One missing word, validated against an ETH address
Re-derives every checksum-valid candidate against your wallet — exactly one match.
seedcrypt-recover missing \ --mnemonic "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon ?" \ --address 0x9858EfFD232B4033E47d90003D41EC34EcaEda94
3 — Two missing words at known positions (BTC)
seedcrypt-recover missing \ --mnemonic "legal winner thank year wave sausage worth useful legal winner thank ?" \ --address bc1q9d4ywgfnd8h43da5tpcxcn6ajv590cg6d3tg6axemvljvt2k76zs50tv4q
4 — Missing word + BIP-39 passphrase + wide scan range
seedcrypt-recover missing \ --mnemonic "…" \ --address "…" \ --passphrase "YourPassphrase" \ --account-end 4 \ --address-end 49

typo — Fix a single-word typo

seedcrypt-recover typo --mnemonic <STRING> --address <ADDR> [--passphrase <STRING>] [--account-start <NUM>] [--account-end <NUM>] [--address-start <NUM>] [--address-end <NUM>]

All words are present but one is wrong. The tool tries every position × all 2048 BIP-39 words — total ≈ N × 2048 candidates (25 k for a 12-word seed, 49 k for 24 words). Always pair this with --address: without validation, the original (wrong) seed itself passes the checksum and you’d get a false positive.

Flags

FlagTypeDefaultDescription
--mnemonic REQUIREDstringFull mnemonic, all words present. No ? placeholders.
--address REQUIREDstringTarget wallet address. Required because the original mnemonic is itself checksum-valid most of the time.
--passphrasestring""BIP-39 25th-word passphrase, same semantics as in missing.
--account-startu320First account index.
--account-endu320Last account index (inclusive).
--address-startu320First address index per account.
--address-endu329Last address index (inclusive).

Examples

1 — Single typo, ETH address
Word 11 is wrong (apple instead of abandon). Runs in <1 s on a modern CPU.
seedcrypt-recover typo \ --mnemonic "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon apple about" \ --address 0x9858EfFD232B4033E47d90003D41EC34EcaEda94
2 — Typo + passphrase + scan multiple accounts
seedcrypt-recover typo \ --mnemonic "…" \ --address "…" \ --passphrase "correct horse battery staple" \ --account-end 2

Supported addresses (auto-detection)

Pass any of these to --address. The coin and derivation type are inferred from the prefix.

PrefixAddress kindCoin / standard
1…P2PKH (legacy)BTC, BCH, BSV / BIP-44
3…P2SH (nested SegWit)BTC / BIP-49
bc1q…P2WPKH (Bech32)BTC native SegWit / BIP-84
bc1p…P2TR (Bech32m)BTC Taproot / BIP-86
L… M…P2PKH / P2SHLitecoin (LTC)
ltc1q…P2WPKHLitecoin native SegWit
D…P2PKHDogecoin (DOGE)
X…P2PKHDash
t1…Transparent P2PKHZcash (transparent only)
0x… (40 hex)Keccak-256 + EIP-55Ethereum / EVM (BSC, Polygon, Avalanche-C, Arbitrum, Optimism, Base)
T… (34 chars)SHA3 + Base58CheckTron (TRX)

Match is case-insensitive for hex characters. EIP-55 mixed-case is preserved but not enforced. If the prefix isn’t recognized, the command fails fast with "Could not detect address type".

Exit codes & output

  • 0 — Recovery succeeded. Prints the full mnemonic, total candidates tested, and elapsed time.
  • 0 with "No match found" — Search space exhausted with no checksum-and-address match. Try widening --account-end / --address-end, or check the passphrase.
  • 1 — Invalid input: malformed mnemonic, unknown address prefix, too many ? placeholders, etc.

On success, the recovered seed is printed to stdout as a single line. The tool intentionally does NOT write the seed to disk — capture it manually if you need to persist it.

Practical tips

  • Always pass --address when possible — without it, missing stops at the first checksum-valid candidate, which is rarely the right one.
  • Try the default range first — most wallets use account 0, addresses 0–9 (HD wallets generate fresh receive addresses, so a used wallet typically has index 0 unused but earlier indexes match older receives).
  • Use a freshly-booted air-gapped machine for highest-value recoveries. The binary doesn’t need internet at runtime.
  • Test before trusting — pair --mnemonic with a known seed and known address first, to confirm the build works on your hardware.
  • Don’t paste your real seed publicly — even when "just for testing". Use the BIP-39 test vector abandon × 11 + about instead, which derives the public ETH address 0x9858EfFD232B4033E47d90003D41EC34EcaEda94.

Out of scope

  • Password recovery (the BIP-39 --passphrase): the tool accepts a known passphrase but does not brute-force it.
  • Non-secp256k1 chains: Solana (ed25519), Cardano (ed25519), Polkadot (sr25519), Cosmos, Stellar, Algorand. Those need separate tooling.
  • Hardware-wallet-specific anti-tamper schemes (Trezor SLIP-39 sharding, Ledger Recover, etc.). SeedCrypt Recover only handles standard BIP-39 mnemonics.
  • Cracking AES-256-GCM payloads from the SeedCrypt app — that’s the encryption product, not this recovery tool. AES-256-GCM is unbreakable; if you’ve lost the password, no offline tool will recover it.