Skip to content

Latest commit

 

History

History
196 lines (153 loc) · 5.16 KB

File metadata and controls

196 lines (153 loc) · 5.16 KB

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:

  1. Share your public key (from pubkey.txt or screen display)
  2. Others can send SOL to this address immediately
  3. No additional setup needed!

SENDING SOL (Offline Signing):

  1. On online computer: Create unsigned transaction
  2. Copy unsigned.json to USB /inbox folder
  3. On offline computer: Run signing tool
  4. Copy signed.json from USB /outbox folder
  5. On online computer: Broadcast transaction

SENDING SOL (Quick Send):

  1. Mount USB on online computer
  2. Use the main program's "Quick Send" feature
  3. Enter password to unlock wallet
  4. 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_pubkey attribute
  • 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 💙