NEW FEATURE: Automatic Wallet Generation (Step 7)
What's New?
The cold wallet USB flash process now includes a 7th step that automatically generates keypairs and a wallet during the flash operation. Your USB drive is now ready for SOL transactions immediately after flashing!
Overview
Before (Manual - 6 Steps)
1. Flash USB drive
2. Mount USB
3. Run wallet generation script
4. Set password
5. Generate keypair
6. ✅ Ready to use
After (Automatic - 7 Steps)
1. Flash USB drive (includes automatic wallet generation)
2. ✅ Ready to use immediately!
The 7-Step Process
When you flash a USB drive, the process now includes:
| Step | Description | Duration |
|---|---|---|
| [1/7] | Download Alpine Linux minirootfs | ~1-2 min |
| [2/7] | Extract filesystem | ~30 sec |
| [3/7] | Configure offline OS | ~10 sec |
| [4/7] | Configure Python environment | ~5 sec |
| [5/7] | Create bootable image | ~1 min |
| [6/7] | Flash to USB drive | ~1-2 min |
| [7/7] | Generate keypair and wallet | ~10 sec |
Total Time: ~5-8 minutes (down from 10-15 minutes with manual wallet creation)
What Happens in Step 7?
The automatic wallet generation:
-
Checks for existing wallet (protects against accidental overwrite)
-
Generates new Solana keypair (Ed25519 cryptography)
-
Prompts for encryption password (required for security)
-
Encrypts private key (Argon2i + XSalsa20-Poly1305)
-
Saves two files: -
keypair.json- Encrypted private key ( SECURE) -pubkey.txt- Public wallet address ( SAFE TO SHARE) -
Displays your wallet address on screen
-
Clears keypair from memory (security best practice)
USB Drive Structure
After flashing, your USB contains:
D:\ (or /mnt/usb)
│
├── wallet/
│ ├── keypair.json 🔐 Encrypted private key
│ └── pubkey.txt 📍 Your wallet address
│
├── inbox/ 📥 Place unsigned transactions here
│
├── outbox/ 📤 Signed transactions appear here
│
└── README.txt 📄 Usage instructions
Benefits
Time Savings
- 50% faster setup - from 10-15 minutes to 5-8 minutes
- One command - complete setup in a single operation
- No manual steps - wallet ready immediately
Ease of Use
- Beginner friendly - less technical knowledge required
- Fewer errors - automated process reduces mistakes
- Clear instructions - step-by-step guidance
Security
- Same encryption - no compromise on security
- Password required - enforced during setup
- Memory safety - automatic cleanup after generation
- Overwrite protection - prevents accidental wallet loss
How to Use Your New Wallet
Receiving SOL
Your wallet is ready to receive SOL immediately!
# Your public key is displayed after flashing
# Also saved in: D:\wallet\pubkey.txt (or /mnt/usb/wallet/pubkey.txt)
Public Key: 7EqQdEUJxhKhZ9qGXPrXrK3qBnxZQnG9xHKZGQPmPump
Share this address to receive SOL payments.
Sending SOL (Quick Method)
1. Mount USB drive
2. Run: python main.py
3. Select: "Quick Send"
4. Enter password to unlock wallet
5. Transaction signed and broadcast automatically
Sending SOL (Air-Gapped Method - Most Secure)
# On online computer:
1. Create unsigned transaction
2. Copy to USB: inbox/transaction.json
# On offline computer:
3. Mount USB drive
4. Run signing tool
5. Signed transaction saved to: outbox/transaction_signed.json
# On online computer:
6. Copy signed transaction from USB
7. Broadcast to network
Security Features
Your wallet is protected by:
Password Protection
- Required during wallet creation
- Used to encrypt private key
- Must be remembered (cannot recover without it!)
Strong Encryption
- Argon2i for key derivation (memory-hard, GPU-resistant)
- XSalsa20-Poly1305 for encryption (authenticated encryption)
- No plaintext private keys ever stored
Memory Safety
- Keypair cleared from memory immediately after use
- Garbage collection ensures complete cleanup
- Minimal exposure time for sensitive data
File Security
- Encrypted keypair:
0600permissions (owner only) - Public key:
0644permissions (readable by all) - Secure directory structure
Important Notes
Remember Your Password
- Cannot recover funds without password
- No recovery mechanism available
- Use strong, memorable password
- Consider password manager
Write Down Public Key
- Displayed on screen after flash
- Saved to
pubkey.txt - Needed to receive SOL
- Safe to share publicly
Keep USB Secure
- Contains encrypted private key
- Store in secure location
- Don't use on untrusted computers
- Consider backup copies
Use Offline for Maximum Security
- Air-gapped signing recommended
- Never sign on internet-connected machines
- USB should stay offline
Example Session
$ python main.py
╔══════════════════════════════════════════════════════════╗
║ SOLANA COLD WALLET - USB FLASH TOOL ║
╚══════════════════════════════════════════════════════════╝
Select: Flash Cold Wallet to USB
[1/7] ⬇️ Initializing ISO builder...
[2/7] 📦 Extracting filesystem...
[3/7] ⚙️ Configuring offline OS...
[4/7] 🐍 Configuring Python environment...
[5/7] 💿 Creating bootable image...
[6/7] 💾 Setting up wallet on USB drive...
Using drive: D:\
Directories created: wallet/, inbox/, outbox/
[7/7] 🔐 Generating keypair and wallet on USB...
Generating new Solana keypair...
Generated keypair: 7EqQdEUJ...GQPmPump
Your wallet will be encrypted with a password.
IMPORTANT: Remember this password - you cannot recover funds without it!
Set wallet password: ********
Confirm password: ********
Encrypting wallet...
✓ Wallet created and encrypted successfully!
============================================================
YOUR WALLET PUBLIC KEY (ADDRESS):
7EqQdEUJxhKhZ9qGXPrXrK3qBnxZQnG9xHKZGQPmPump
============================================================
Write down or photograph this address!
You need this to receive SOL on this wallet.
✓ Cold wallet USB created successfully!
╔══════════════════════════════════════════════════════════╗
║ Wallet Generated Successfully! ║
╠══════════════════════════════════════════════════════════╣
║ ║
║ Public Key (Wallet Address): ║
║ 7EqQdEUJxhKhZ9qGXPrXrK3qBnxZQnG9xHKZGQPmPump ║
║ ║
║ This wallet is now ready to receive and send SOL! ║
║ ║
║ Write down or photograph this address to receive ║
║ payments. ║
╚══════════════════════════════════════════════════════════╝
Next steps:
1. Safely remove the USB drive
2. The wallet is ready - you can send SOL to the address above
3. For air-gapped signing, boot from this USB on an offline computer
4. Keep the USB offline and secure when not in use
Additional Documentation
For more detailed information, see:
- IMPLEMENTATION_SUMMARY.md - Complete implementation details
- WALLET_GENERATION_UPDATE.md - Feature documentation
- STEP7_VISUAL_GUIDE.txt - Visual process guide
- STEP7_CODE_FLOW.txt - Code flow diagrams
- STEP7_QUICK_REFERENCE.txt - Quick reference
- CHANGELOG.md - Version history
Troubleshooting
Wallet Generation Fails
Problem: Step 7 fails with import error
Solution: Install required dependencies
$ pip install solders pynacl
Problem: Password prompt doesn't appear
Solution: Ensure terminal supports interactive input
Check that src.ui module is available
Problem: Public key not displayed
Solution: Check that flash process completed successfully
Verify iso_builder.generated_pubkey is set
Existing Wallet Found
Problem: Wallet already exists on USB
Solution: You'll be prompted:
- Choose "OVERWRITE" to replace with new wallet
- Choose "No" to keep existing wallet
Upgrade from Previous Version
If you're upgrading from a version without Step 7:
-
No migration needed - feature is additive
-
Existing wallets continue to work
-
New flash operations will auto-generate wallets
-
Manual wallet creation still available if needed
Technical Details
Modified Files
src/iso_builder.py- Added wallet generation methodmain.py- Updated UI and messaging
New Dependencies
solders- Solana SDK (already required)src.secure_memory- Encryption handler (already present)
Platform Support
- Windows 10/11
- Linux (Ubuntu, Debian, Fedora)
- macOS (untested but should work)
Contributing
Found a bug? Have a suggestion?
-
Open an issue with details
-
Include error messages if any
-
Describe expected vs actual behavior
License
Same as main project
Summary
The USB flash process now includes automatic wallet generation!
Faster - One command, complete setup
Easier - No manual wallet creation
Secure - Same strong encryption
Ready - Wallet can receive SOL immediately
B - Love U 3000
Generated: January 1, 2026
Version: 2.0.0
Feature: Step 7 - Automatic Wallet Generation