Cold Wallet USB Flash Process - Visual Guide
Now with Automatic Wallet Generation
Step-by-Step Process (7 Steps)
[1/7] Initializing ISO builder...
- Downloads Alpine Linux minimal root filesystem
[2/7] Extracting filesystem...
- Unpacks the Alpine Linux rootfs
[3/7] Configuring offline OS...
- Blacklists network drivers
- Disables network services
- Creates signing scripts
- Sets up boot profile
[4/7] Configuring Python environment...
- Installs Python dependencies
- Copies secure_memory module
[5/7] Creating bootable image...
- Creates portable filesystem archive
- Packages everything into solana-cold-wallet.tar.gz
[6/7] Setting up wallet on USB drive...
- Creates /wallet, /inbox, /outbox directories
- Copies README.txt with instructions
- Prepares USB structure
[7/7] Generating keypair and wallet on USB... NEW!
- Generates new Solana keypair
- Prompts for encryption password
- Encrypts private key with SecureWalletHandler
- Saves keypair.json (encrypted)
- Saves pubkey.txt (public key/address)
- Displays wallet address to user
- USB is now READY FOR TRANSACTIONS!
Result
USB Drive Structure:
D:\
├── wallet/
│ ├── keypair.json (🔒 ENCRYPTED private key)
│ └── pubkey.txt (📍 Your wallet address - safe to share)
├── inbox/ (📥 Place unsigned transactions here)
├── outbox/ (📤 Signed transactions appear here)
└── README.txt (📄 Usage instructions)
Wallet Information:
- Public Key: [Displayed on screen after flash]
- Private Key: Encrypted and stored in keypair.json
- Password: Set by you during Step 7
Security Features:
- Password-protected encryption
- Memory cleared after key generation
- Secure file permissions (Unix)
- Network disabled on offline OS
Usage
RECEIVING SOL:
-
Share your public key (from pubkey.txt or screen display)
-
Others can send SOL to this address immediately
-
No additional setup needed!
SENDING SOL (Offline Signing):
-
On online computer: Create unsigned transaction
-
Copy unsigned.json to USB /inbox folder
-
On offline computer: Run signing tool
-
Copy signed.json from USB /outbox folder
-
On online computer: Broadcast transaction
SENDING SOL (Quick Send):
-
Mount USB on online computer
-
Use the main program's "Quick Send" feature
-
Enter password to unlock wallet
-
Transaction is signed and broadcast automatically
Before vs After
BEFORE (Manual):
┌─────────────────┐
│ Flash USB (6) │
└────────┬────────┘
│
v
┌─────────────────┐
│ Mount USB │
└────────┬────────┘
│
v
┌─────────────────┐
│ Generate Wallet │
│ (Manual) │
└────────┬────────┘
│
v
┌─────────────────┐
│ ✅ Ready! │
└─────────────────┘
- Steps: 3+ manual steps
- Time: ~10-15 minutes
- Complexity: Medium
- Errors: Possible
AFTER (Automatic):
┌─────────────────┐
│ Flash USB (7) │
└────────┬────────┘
│
v
┌─────────────────┐
│ ✅ Ready! │
└─────────────────┘
- Steps: 1 automatic process
- Time: ~5-8 minutes
- Complexity: Easy
- Errors: Unlikely
Key Benefits
Immediate Use - Wallet ready to receive SOL right after flashing
Time Saving - No separate wallet generation step needed
User Friendly - Less technical knowledge required
Secure - Same encryption as manual generation
Convenient - One-command complete setup
Flexible - Can overwrite or keep existing wallets
Security Notes
REMEMBER YOUR PASSWORD - Cannot recover funds without it!
WRITE DOWN PUBLIC KEY - Needed to receive SOL
KEEP USB SECURE - Contains encrypted private key
OFFLINE SIGNING - Never sign on internet-connected machines
Files Modified
Modified Files:
- src/iso_builder.py
- Added
_generate_wallet_on_usb()method - Updated
_flash_to_usb_windows()to include Step 7 - Updated
_flash_to_usb_linux()to include Step 7 - Updated all step counts from 6 to 7
-
Added
generated_pubkeyattribute -
main.py
- Updated flash process description
- Added public key display after flash
- Updated step counter to 7
- Enhanced success messaging
New Files:
- WALLET_GENERATION_UPDATE.md - Detailed documentation
Ready to Test!
# Run the application
python main.py
# Select "Flash Cold Wallet to USB"
# Follow the 7-step automated process
# Result: USB ready for SOL transactions!
*B - Love U 3000 *