Generate custom Algorand wallet addresses that start with a desired prefix — fast.
This project started as a simple curiosity about how vanity address generators work and evolved into a highly optimized, multi-core brute-force engine written in Go.
This tool generates random Algorand keypairs until it finds an address that starts with a user-defined prefix.
Example:
ABCD... HELLO... DOGE...
When a match is found, it outputs:
- โ Algorand Address
- โ 25-word mnemonic (seed phrase)
- โ Total attempts
- โ Execution time
Algorand addresses are derived from:
base32( publicKey (32 bytes) + checksum (4 bytes) )
Each character in the address represents 5 bits, meaning:
| Prefix Length | Difficulty |
|---|---|
| 4 chars | ~1 million attempts |
| 5 chars | ~33 million |
| 6 chars | ~1 billion |
| 7 chars | ~34 billion |
This tool brute-forces key generation until a match is found.
This project went through several major optimizations:
- Single-threaded
- Full base32 encoding per attempt
- Extremely slow (hours+ for 4 chars)
- Multi-core parallelism
- Massive speed improvement
- Avoided repeated base32 encoding
- Reduced allocations
- ~2–4x speed boost
Instead of encoding addresses:
โ
Convert target prefix → bit pattern
โ
Generate (publicKey + checksum)
โ
Compare bits directly
This eliminates the biggest bottleneck entirely.
- โ Zero string allocations in hot loop
- โ Bit-level comparison (early exit)
- โ Full CPU utilization
- โ Minimal memory overhead
On a typical machine (e.g., my AMD Ryzen 7 5825U Mini PC):
~230,000 attempts/sec
- โ 5-character prefix in 15 seconds (lucky run)
- โ 5-character prefix in ~2 minutes (expected)
git clone https://github.com/micah1701/algo-vanity.git
cd algo-vanitygo mod tidygo run main.gogo build -o algo-vanity.exe
./algo-vanity.exe HELLO
go run main.go
go run main.go HELLO
Searching for prefix: HELLO
Start time: 2026-04-06T12:00:00Z
โ
FOUND!
Address: HELLOXYZ...
Mnemonic: ability zone ... (25 words)
Stats:
Total Attempts: 25254774
Total Time: 1m48s
-
The mnemonic is the only thing you need to recover the wallet
-
Store it securely — this tool does not encrypt or save keys
-
Each run is random — times will vary due to probability