Exodus is the most popular desktop multi-chain wallet, supporting Bitcoin, Ethereum, and over 260 other assets. It stores all encrypted secrets in files with the .seco extension, protected by a password-derived key. Unlike many mobile-first wallets, Exodus's desktop vault is well-documented and supported by hashcat, making it one of the most attackable wallet formats available.
About Exodus Wallet
Exodus was launched in 2015 by JP Richardson and Daniel Castagnoli and has grown into one of the most recognized multi-chain wallets with over 10 million downloads. It uses a custom Secure Container (SECO) file format to store encrypted seed material, transaction metadata, and asset configuration. Exodus does not use BIP39 mnemonics natively — its "secret phrase" is a 12-word mnemonic from Exodus's own word list, not the standard BIP39 list, though it can also import BIP39 wallets.
Exodus encryption details
| Parameter | Value |
|---|---|
| KDF | PBKDF2-HMAC-SHA256 |
| Iterations (pre-2023) | ~25,000 |
| Iterations (2023+) | ~250,000 |
| Cipher | AES-256-GCM |
| Key length | 256 bits |
| Salt length | 32 bytes (random) |
| Hashcat mode | 25400 |
| GPU speed (RTX 4090, 25K iter) | ~2,000,000 H/s |
| GPU speed (RTX 4090, 250K iter) | ~200,000 H/s |
Locating the .seco vault files
Exodus file locations
- Windows:
%APPDATA%\Exodus\exodus.wallet\ - macOS:
~/Library/Application Support/exodus.wallet/ - Linux:
~/.config/Exodus/exodus.wallet/
The most important file is seed.seco which contains the encrypted master seed. Copy the entire exodus.wallet folder to a safe location before proceeding.
Extracting the hash for hashcat mode 25400
John the Ripper's bleeding-jumbo branch includes exodus2john.py, which reads a .seco file and outputs a hash in hashcat-compatible format:
# Download exodus2john.py from bleeding-jumbo
wget https://raw.githubusercontent.com/openwall/john/bleeding-jumbo/run/exodus2john.py
# Extract the hash from seed.seco
python3 exodus2john.py ~/exodus_backup/exodus.wallet/seed.seco > exodus.hash
# The output looks like:
# seed.seco:$exodus$1*25000*f3c2a1b4...a8*9b8e7d2c...f1*aa45be...3c
# Verify hashcat recognizes it
hashcat --example-hashes | grep -A2 25400
# Attack with dictionary + rules
hashcat -m 25400 -a 0 exodus.hash rockyou.txt \
-r OneRuleToRuleThemAll.rule \
-w 3 --status --status-timer=10
# Mask attack for partial password knowledge
hashcat -m 25400 -a 3 exodus.hash "?u?l?l?l?l?l?d?d!" \
--increment --increment-min=6 --increment-max=10 \
-w 3The .seco file format breakdown
Understanding the binary layout helps when exodus2john.py fails on corrupted files. The SECO container format is:
Offset Size Field
------ ---- -----
0x00 4 Magic bytes "SECO"
0x04 1 Version byte
0x05 4 KDF iteration count (uint32 LE)
0x09 32 PBKDF2 salt (random)
0x29 12 AES-GCM initialization vector (nonce)
0x35 N AES-256-GCM ciphertext + 16-byte GCM auth tagFor newer Exodus versions (v24+, 2024-2026), there may be additional header fields. Theexodus2john.py tool is updated regularly — always use the latest bleeding-jumbo build.
Recovery feasibility
Feasible
- • Password under 10 characters with known structure
- • Old Exodus (pre-2023, 25K iterations — fast to attack)
- • Password derived from personal words + year/digit/symbol
- • You remember 60%+ of the characters or the pattern
- • You have seed.seco intact on disk
Unlikely
- • Password manager generated 15+ character strings
- • Modern Exodus (250K iterations) + strong password
- • No seed.seco file (Exodus was uninstalled with data deletion)
- • Truly random password with no human pattern
Step-by-step recovery guide
- Close Exodus so it releases file locks on the wallet folder.
- Back up the entire
exodus.walletfolder to external media. - Run exodus2john.py against
seed.secoto extract the hash. - Build a candidate list from everything you remember: pet names, family names, places, years, favourite numbers, common passwords you used in that era.
- Run hashcat with mode 25400, your dictionary, and common rules (OneRuleToRuleThemAll, dive.rule).
- If no match, try mask attacks for partial patterns: known prefix, known length, known character types.
- If still stuck, submit your
seed.secofile to a professional recovery service. We crack Exodus vaults daily.
Need Exodus recovery help?
Submit your Exodus .seco file and we will run hashcat mode 25400 against it on our GPU cluster. You pay only if we recover the password.
Related guides
- Exodus, Atomic & Trust Wallet combined guide — comparison of all three wallets.
- Atomic Wallet password recovery — IndexedDB/LevelDB based vault.
- btcrecover complete tutorial — for seed-backed attack scenarios.
Frequently asked questions
Where does Exodus store its .seco vault files?
In %APPDATA%/Exodus/exodus.wallet/ on Windows, ~/Library/Application Support/exodus.wallet/ on macOS, or ~/.config/Exodus/exodus.wallet/ on Linux.
What hashcat mode targets Exodus .seco files?
Hashcat mode 25400. Extract the hash using exodus2john.py from John the Ripper bleeding-jumbo, then run dictionary/mask attacks normally.
Can I recover my Exodus password if I have the 12-word phrase?
If you have the phrase, you do not need the password. Restore from phrase in a fresh Exodus install — the password only protects the local .seco file.
What is the GPU speed for Exodus hashcat mode 25400?
RTX 4090: ~2,000,000 H/s at 25K iterations (older Exodus) or ~200,000 H/s at 250K iterations (Exodus 2023+).
Is Exodus password recovery realistic for random passwords?
Only with useful hints. Exodus uses strong encryption (AES-256-GCM + PBKDF2). Success relies on exploiting human patterns in password creation.