Fast and performant Ethereum vanity address generator written in Go. Generate custom addresses with your desired prefix or suffix using multi-threaded mining with support for pattern matching and wildcards.
β¨ High Performance β Multi-threaded address mining utilizing all available CPU cores
π Flexible Patterns β Search by prefix or suffix with wildcard support for pattern matching
π― EVM Compatible β Works with Ethereum and all EVM-compatible blockchain networks
π EIP-55 Checksum β Generates properly checksummed addresses (EIP-55) for maximum security
π Real-time Statistics β Displays generation speed and attempt counter
π Key Verification β Verify private keys and derive their corresponding addresses
π¦ Batch Mode β Search for multiple patterns simultaneously with comprehensive reporting
πΎ JSON Export β Save results to JSON files with security-conscious file permissions
β±οΈ Search Timeout β Set maximum time limits for each search operation
- Go 1.19 or higher
# 1. Clone repository
git clone https://github.com/dextromethorphanum/evm-vanity.git
cd evm-vanity
# 2. Run the script
go run main.go -prefix "d" -benchmark
# 2.1. or build executable
go build -o vanity main.go
# 2.2. and run the executable
./vanity -prefix "dead"# Search for addresses starting with "dead"
./vanity -prefix "dead"
# Search for addresses ending with "cafe"
./vanity -suffix "cafe"
# Use specific number of worker threads
./vanity -prefix "0x123" -workers 8
# Display progress bar during search
./vanity -prefix "d" -benchmark
# Set timeout (30 seconds max search time)
./vanity -prefix "dead" -timeout 30s
# Save result to JSON file
./vanity -prefix "cafe" -output result.json
# Combine multiple options
./vanity -prefix "deadbeef" -workers 16 -timeout 60s -output address.json -benchmarkUse special characters to match character classes:
| Character | Meaning | Example |
|---|---|---|
@ |
Any digit (0-9) | de@@ matches de12, de99, etc. |
# |
Any hex letter (a-f) | ###cafe matches abccafe, ffecafe, etc. |
* |
Any hex char (0-9, a-f) | ****1234 matches any 4 chars + 1234 |
[hex] |
Exact character | dead matches dead |
# Match prefix "de" followed by any 2 digits
./vanity -prefix "de@@"
# Match suffix "cafe" preceded by any 3 letters
./vanity -suffix "###cafe"
# Match any 4 hex chars + "1234"
./vanity -prefix "****1234"
# Match "d" + any letter + "ad"
./vanity -prefix "d#ad"
# Match "dead" exactly
./vanity -prefix "dead"
# Combine exact and wildcards
./vanity -suffix "1@a#b"Search for multiple patterns simultaneously with comprehensive results:
# Search multiple patterns (default type: prefix)
./vanity -patterns "dead,cafe,1337" -output results.json
# Mix prefix and suffix with explicit type prefixes
./vanity -patterns "p:dead,s:cafe,p:###" -output batch.json
# Batch with timeout and progress bar
./vanity -patterns "dead,cafe,beef" -timeout 60s -benchmark -output results.json
# Large batch with workers
./vanity -patterns "a,b,c,d,e,f" -workers 32 -timeout 120s -output batch.jsonType prefixes for batch mode:
p:patternβ Search for prefix patterns:patternβ Search for suffix patternpatternβ Default to prefix (same asp:pattern)
Verify which address corresponds to a private key:
./vanity -verify "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
# Output:
# Private Key: 0xabcdef1234567890...
# Address: 0x1234567890abcdef...
# Checksum: 0x1234567890AbCdEf...-prefix string
Pattern to search for at the beginning of address
Supports wildcards: @ (digit 0-9), # (letter a-f), * (any 0-f)
Cannot be used together with -suffix or -patterns
-suffix string
Pattern to search for at the end of address
Supports wildcards: @ (digit 0-9), # (letter a-f), * (any 0-f)
Cannot be used together with -prefix or -patterns
-patterns string
Multiple patterns separated by comma for batch mode
Use "p:" prefix for prefix patterns, "s:" for suffix patterns
Examples: "p:dead,s:cafe,1337" or "dead,cafe,beef"
Cannot be used together with -prefix or -suffix
Maximum 10,000 patterns per batch
-workers int
Number of parallel worker threads to use
Default: number of CPU cores available
Recommended range: 1-32 depending on CPU
Higher values = faster search but higher CPU usage
-benchmark
Display progress bar during search operation
Shows real-time statistics and animation
-timeout duration
Maximum time to search for each pattern
Format: "60s", "5m", "1h", etc.
If not set, searches indefinitely until found
Useful for preventing long-running processes
-output string
Save results to JSON file
File permissions: 0600 (owner read/write only)
Contains private keys, handle with care
Warning displayed when saving
-verify string
Verify address from private key (0x...)
Derives and displays corresponding address
Useful for validating previously generated keys
-h, -help
Display help message with all available flags
All EVM-compatible networks use the same address format. A single private key generates the same address across all EVM chains:
Mainnet Chains:
- β Ethereum Mainnet
- β Polygon (MATIC)
- β Arbitrum One
- β Optimism
- β Avalanche C-Chain
- β Fantom Opera
- β Binance Smart Chain (BSC)
- β Gnosis Chain
- β Aurora (NEAR)
- β Harmony One
- β Moonbeam / Moonriver
Testnet Chains:
- β Ethereum Sepolia
- β Ethereum Goerli
- β Ethereum Holesky
- β Polygon Mumbai
- β Arbitrum Sepolia
- β Optimism Sepolia
- β Avalanche Fuji
Rule: One private key = One address for all EVM networks
Performance depends on pattern length, complexity, and hardware:
| Pattern | Characters | Estimated Time | Difficulty | Use Case |
|---|---|---|---|---|
d |
1 | < 1s | Trivial | Testing |
de |
2 | < 1s | Very Easy | Testing |
dea |
3 | seconds | Easy | Realistic |
dead |
4 | minutes | Medium | Common |
deadb |
5 | minutes | Hard | Difficult |
deadbe |
6 | minutes | Hard | Difficult |
deadbee |
7 | hours | Hard | Difficult |
- Bitcoin address support (P2PKH, Segwit)
- Solana address support (ed25519)
- GPU acceleration (CUDA/OpenCL)
- REST API server
- Web UI dashboard
- Database result caching
- Docker support
- CI/CD integration
- Additional security features
# Clone repository
git clone https://github.com/yourusername/eth-vanity-gen.git
cd eth-vanity-gen
# Install dependencies
go mod tidy
# Build for current system
go build -o vanity main.go
# Build for specific OS/architecture
GOOS=linux GOARCH=amd64 go build -o vanity-linux main.go
GOOS=darwin GOARCH=amd64 go build -o vanity-mac main.go
GOOS=windows GOARCH=amd64 go build -o vanity.exe main.go
# Install to $GOPATH/bin
go install
# Run tests
go test -v ./...
# Build with optimizations
go build -ldflags="-s -w" -o vanity main.goeth-vanity-gen/
βββ main.go # Main application code
βββ go.mod # Module definition
βββ go.sum # Dependency checksums
βββ README.md # This file
βββ LICENSE # MIT license
βββ .gitignore # Git excludes
βββ Makefile # Build automation (optional)
MIT License β see LICENSE file for details
MIT License
Copyright (c) 2024 Ethereum Vanity Address Generator Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
This tool is provided as-is for educational and personal use only.
Users assume full responsibility for:
- Secure storage and backup of generated private keys
- Verification of addresses before use
- Understanding blockchain transaction risks
- Compliance with local laws and regulations
- Keeping private keys confidential
The authors and contributors provide no warranty and are not liable for:
- Loss of funds due to user error
- Misuse of generated addresses
- Security breaches or compromises
- Any damages arising from use of this software
Use at your own risk. When in doubt, consult with security professionals.
- π Check the README for detailed documentation
- π Report bugs via GitHub Issues
- π‘ Request features via GitHub Discussions
- π§ For security issues, do not open public issues
Built with:
- go-ethereum β Ethereum library
- progressbar β Progress bar library
- Go standard library
Special thanks to the Ethereum community and Go contributors.
Built with β€οΈ using Go.