- Downloads Alpine Linux minimal root filesystem
- Unpacks the Alpine Linux rootfs
- Blacklists network drivers
- Disables network services
- Creates signing scripts
- Sets up boot profile
- Installs Python dependencies
- Copies secure_memory module
- Creates portable filesystem archive
- Packages everything into solana-cold-wallet.tar.gz
- Creates /wallet, /inbox, /outbox directories
- Copies README.txt with instructions
- Prepares USB structure
- 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!
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)
- Public Key: [Displayed on screen after flash]
- Private Key: Encrypted and stored in keypair.json
- Password: Set by you during Step 7
- 🔐 Password-protected encryption
- 🧹 Memory cleared after key generation
- 🔒 Secure file permissions (Unix)
⚠️ Network disabled on offline OS
- Share your public key (from pubkey.txt or screen display)
- Others can send SOL to this address immediately
- No additional setup needed!
- 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
- Mount USB on online computer
- Use the main program's "Quick Send" feature
- Enter password to unlock wallet
- Transaction is signed and broadcast automatically
┌─────────────────┐
│ Flash USB (6) │
└────────┬────────┘
│
v
┌─────────────────┐
│ Mount USB │
└────────┬────────┘
│
v
┌─────────────────┐
│ Generate Wallet │
│ (Manual) │
└────────┬────────┘
│
v
┌─────────────────┐
│ ✅ Ready! │
└─────────────────┘
- Steps: 3+ manual steps
- Time: ~10-15 minutes
- Complexity: Medium
- Errors: Possible
┌─────────────────┐
│ Flash USB (7) │
└────────┬────────┘
│
v
┌─────────────────┐
│ ✅ Ready! │
└─────────────────┘
- Steps: 1 automatic process
- Time: ~5-8 minutes
- Complexity: Easy
- Errors: Unlikely
✓ 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
-
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
- Added
-
main.py
- Updated flash process description
- Added public key display after flash
- Updated step counter to 7
- Enhanced success messaging
- WALLET_GENERATION_UPDATE.md - Detailed documentation
# 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 💙