Skip to content

About

Client-side utility for importing, cleaning, and exporting crypto private keys & addresses.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Wallet Forge

100% client-side wallet data preparation tool with enterprise-grade validation

Version License: MIT Vercel PRs Welcome

Offline No Tracking No Backend

EIP-55 Security

πŸ”₯ Features

Security First

  • πŸ”’ 100% Client-Side β€” Zero backend, zero network requests
  • πŸ”’ No External Dependencies β€” All code runs locally
  • πŸ”’ No Data Storage β€” Nothing saved to disk or cloud
  • πŸ”’ Offline Ready β€” Works without internet connection
  • πŸ”’ Open Source β€” Fully auditable single HTML file
  • πŸ”₯ Burn Session β€” Nuclear option to clear all data

Validation (v1.2, extended in v2.1)

  • βœ… EIP-55 Checksum β€” Proper Ethereum address validation
  • βœ… Private Key Format β€” 64-char hex with optional 0x prefix
  • βœ… Real-Time Errors β€” Shows exact line numbers of invalid entries
  • βœ… Count Mismatch Detection β€” Warns when PKs β‰  Addresses
  • βœ… Zero-Key Detection β€” Prevents all-zero private keys
  • βœ… BIP-39 Mnemonic Validation (v2.1) β€” Checks every word against the real 2048-word BIP-39 list and verifies the cryptographic checksum bits (via the browser's built-in Web Crypto SHA-256) β€” not just "is this 12 or 24 words"

Multi-Chain & Mnemonic Support (v2.0)

  • 🌐 Multi-Chain Address Detection β€” Recognizes Ethereum (0x...), Bitcoin (legacy 1.../3... and bech32 bc1...), Tron (T...), and Solana addresses, with a per-chain breakdown next to the Addresses field
  • 🌱 Mnemonic / Seed Phrase Field β€” Optional dedicated field for 12/15/18/21/24-word seed phrases, kept separate from private keys/addresses
  • πŸ“Œ Extra Column β€” Optional free-text column for tags, labels, or amounts
  • πŸ–ŠοΈ Custom Column Headers β€” Rename output columns to match whatever a downstream tool expects

Data Processing

  • 🧹 Auto-Clean β€” Removes labels, quotes, and extra whitespace
  • 🎲 Shuffle β€” Fisher-Yates randomization for security
  • πŸ”„ Deduplicate β€” Remove duplicate wallet pairs
  • πŸ“ Normalize β€” Lowercase and trim all entries
  • πŸ”§ 0x Formatting β€” Add or remove 0x prefix from private keys (v1.3)

Export Formats (v1.2, expanded in v2.0)

  • πŸ“‹ Default β€” private_key, address (CSV)
  • πŸ”‘ Keys Only β€” Private keys (one per line)
  • 🏠 Addresses Only β€” Addresses (one per line)
  • 🌱 Mnemonics Only (v2.0) β€” Seed phrases (one per line)
  • πŸ”’ Indexed β€” With row numbers for tracking
  • πŸ“„ TSV (v2.0) β€” Tab-separated, for tools that choke on commas
  • 🧾 JSONL (v2.0) β€” One JSON object per line, useful for streaming into a bot/script

Import/Export

  • πŸ“‚ JSON β€” Import/export structured wallet data (objects, or a flat array of keys/addresses)
  • πŸ“Š CSV / TSV β€” Standard spreadsheet formats
  • πŸ“„ TXT β€” Plain text lists (one per line)
  • πŸ–±οΈ Drag & Drop (v2.0) β€” Drop a file anywhere on the page to import it
  • πŸ’Ύ Individual Downloads β€” Export keys or addresses separately

πŸš€ Quick Start

Use Online

Visit the deployed version: wallet-forge.vercel.app

Use Locally (Recommended for Maximum Security)

# 1. Clone the repository
git clone https://github.com/CryptoExplor/Wallet-Forge
cd Wallet-Forge/public

# 2. Disconnect from internet (optional but recommended)

# 3. Open in browser
open index.html  # macOS
start index.html # Windows
xdg-open index.html # Linux

Works 100% offline β€” no internet required after download.

Deploy Your Own

Vercel (Recommended)

git clone https://github.com/CryptoExplor/Wallet-Forge
cd Wallet-Forge
vercel deploy --prod

GitHub Pages

git clone https://github.com/CryptoExplor/Wallet-Forge
cd Wallet-Forge
# Enable Pages: Settings β†’ Pages β†’ Source: main β†’ Folder: /public
git push origin main

Netlify Drop

  1. Visit app.netlify.com/drop
  2. Drag the public folder
  3. Done!

πŸ“– Usage

Basic Workflow

  1. Import or paste wallet data (keys, addresses, or both)
  2. Validation runs automatically β€” see errors in real-time
  3. Process as needed β€” clean, shuffle, dedupe
  4. Select export format β€” choose the output you need
  5. Export in your preferred format

Validation Example

Input:
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb  ❌ Invalid (missing char)
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045  βœ… Valid

Result:
βœ“ Valid: 1  βœ— Invalid: 1
Bad lines: 1

Processing Options

  • Remove Duplicates β€” Enabled by default
  • Normalize β€” Lowercase + trim (enabled by default)
  • Pad Empty Values β€” Fill mismatched rows with blanks

Private Key Formatting (New in v1.3)

Choose how private keys are exported:

  • Keep As-Is β€” No modification (default)
  • Ensure 0x prefix β€” Add 0x to all keys
  • Remove 0x prefix β€” Strip 0x from all keys

Perfect for different tool compatibility (ethers.js, hardhat, etc.).

Export Presets (New in v1.2)

Perfect for bot integration:

  • Default β€” Full wallet pairs for record keeping
  • Keys Only β€” For ethers.js signer arrays
  • Addresses Only β€” For recipient lists
  • Indexed β€” For batch operations with tracking

Burn Session (New in v1.2)

Nuclear option for maximum security:

πŸ”₯ Burn Session β†’ Clears all data + reloads page

Use after sensitive operations.

πŸ” Security Model

Wallet Forge is designed to be maximally safe by default:

Core Principles

  • Runs entirely in your browser β€” No server-side processing
  • No backend β€” Zero API calls, zero data transmission
  • No analytics β€” Zero tracking or telemetry
  • No wallet connections β€” Doesn't interact with MetaMask, WalletConnect, etc.
  • No signing or transaction logic β€” Pure data preparation only
  • Can be used fully offline β€” Download once, use forever

Maximum Security Usage

For maximum security when handling sensitive data:

  1. Download the files (index.html + sha3.min.js)
  2. Disconnect from the internet (turn off WiFi/unplug ethernet)
  3. Open in browser (works perfectly offline)
  4. Use Wallet Forge normally (import, validate, export)
  5. Burn session when done (clears all data + reloads)

What This Tool Does NOT Do

  • ❌ No API calls to any server
  • ❌ No external CDN dependencies (v1.2+)
  • ❌ No analytics, cookies, or tracking
  • ❌ No localStorage (except burn session)
  • ❌ No wallet signing or transactions
  • ❌ No network requests of any kind

Trust Verification

Verify it yourself:

# 1. Download the app
git clone https://github.com/CryptoExplor/Wallet-Forge
cd Wallet-Forge/public

# 2. Disconnect from internet
# (turn off WiFi or unplug ethernet)

# 3. Open in browser
open index.html

# 4. Tool works perfectly offline βœ…

See SECURITY.md for complete verification guide.

Audit Trail

  • Single HTML file (~54KB as of v2.1 β€” see SECURITY.md for exact byte counts)
  • Local crypto library (sha3.min.js ~9.6KB)
  • No build process
  • No obfuscation
  • Fully inspectable source code
  • Content Security Policy enforced

Safe For

  • βœ… Private key management
  • βœ… Airdrop preparation
  • βœ… Multi-wallet operations
  • βœ… Dev/test workflows
  • βœ… Offline environments
  • βœ… Air-gapped systems

🎯 Use Cases

Airdrop Farming

  • Import wallet sets
  • Validate all addresses
  • Shuffle for randomness
  • Export for bot consumption

Bot Integration (v1.2)

  • Export keys-only for ethers.js
  • Export indexed for batch tracking
  • Export addresses for recipient lists
  • Prep data before automation

Development

  • Clean messy CSV exports
  • Normalize address formats
  • Prepare test wallets
  • Generate structured data

Portfolio Management

  • Merge multiple sources
  • Remove duplicates
  • Validate checksums
  • Export unified lists

πŸ”§ Technical Details

File Size

  • ~54KB uncompressed (grew with v2.0's multi-chain/mnemonic support and the v2.1 BIP-39 wordlist)
  • ~19KB gzipped
  • Single file deployment

Browser Support

  • Chrome/Edge (latest)
  • Firefox (latest)
  • Safari (latest)
  • All modern browsers

Standards

  • EIP-55 address checksum (js-sha3)
  • BIP-39 mnemonic wordlist + checksum (Web Crypto SHA-256, v2.1)
  • RFC 4180 CSV format
  • JSON structured output

Network Status Indicator (v1.2)

  • Shows βœ… Offline Safe when disconnected
  • Shows ⚠️ Online (no network calls) when connected
  • Real-time status updates

πŸ“ File Formats

JSON Structure

[
  {
    "private_key": "0x...",
    "address": "0x..."
  }
]

CSV Formats

Default:

private_key,address
"0x...","0x..."

Indexed (new in v1.2):

index,private_key,address
1,"0x...","0x..."

Keys Only:

0x...
0x...

Addresses Only:

0x...
0x...

πŸ“‹ Changelog

v2.1 (Current) - Real Mnemonic Validation & Hardening

  • βœ… Real BIP-39 Validation β€” Mnemonic badge now checks every word against the official 2048-word list and verifies the checksum bits (via Web Crypto SHA-256), instead of just counting words
  • βœ… Fixed BTC/Tron addresses being misclassified as Solana in the chain-breakdown display (regex ordering)
  • βœ… Fixed a text-cleanup edge case where a quoted CSV value followed by a trailing comma kept a stray quote character
  • βœ… Fixed JSON import silently corrupting data when given a flat array of strings (e.g. ["0xabc...", "0xdef..."]) instead of objects
  • βœ… Preview/Download now report how many duplicate rows were removed, instead of dropping them silently
  • βœ… "Include Mnemonic column" on export now defaults off (opt-in) since a seed phrase is more sensitive than a single private key
  • βœ… Debounced live validation so pasting very large lists doesn't stall the tab
  • βœ… Accessibility: form labels are now properly associated with their fields
  • βœ… Mobile layout fix for the Custom Column Names section

v2.0 - Multi-Chain & Mnemonic Support

  • βœ… Multi-chain address detection β€” Ethereum, Bitcoin (legacy + bech32), Tron, Solana
  • βœ… Mnemonic / seed phrase field (12/15/18/21/24 words)
  • βœ… Custom column headers for exported data
  • βœ… Drag & drop file import
  • βœ… TSV and JSONL export formats
  • βœ… Fully offline β€” no CDN, no build step

v1.3 - Format Flexibility

  • βœ… 0x Prefix Toggle β€” Add or remove 0x from private keys on export
  • βœ… Tool compatibility for ethers.js, hardhat, and other frameworks
  • βœ… Footer logo updates (GitHub, Farcaster icons)

v1.2 - Trust Hardening

  • βœ… Proper EIP-55 checksum validation (js-sha3)
  • βœ… Export format presets (4 modes)
  • βœ… Burn Session button
  • βœ… Network status indicator
  • βœ… Removed CDN dependencies (fully offline)
  • βœ… Zero-key detection

v1.1 - Validation

  • Real-time validation
  • Line number error reporting
  • Deduplication
  • Shuffle function
  • Count mismatch warnings

v1.0 - Initial Release

  • Basic import/export
  • CSV/JSON support
  • Auto-clean

🀝 Contributing

Contributions welcome! Please:

  1. Fork the repo
  2. Create a feature branch
  3. Submit a PR

Development

No build process needed:

# Edit index.html directly
# Test in browser
# Commit changes

πŸ“„ License

MIT License - see LICENSE file

πŸ”— Links

⚠️ Disclaimer

This tool handles sensitive data (private keys). While it runs entirely client-side with no network access:

  • Always verify the source code before use
  • Use on a secure, malware-free machine
  • Never share private keys with anyone
  • Test with small amounts first
  • For maximum security: download and run offline

See SECURITY.md for complete verification instructions.

Use at your own risk. No warranties provided.


v2.1 β€” Made with πŸ”₯ by CryptoExplor

Trust through transparency. Security through simplicity.

About

Client-side utility for importing, cleaning, and exporting crypto private keys & addresses.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages