Skip to content

micah1701/algo-vanity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

โšก Algorand Vanity Address Generator (Go)

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.


๐Ÿš€ What This Does

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

โš™๏ธ How It Works

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.


๐Ÿ”ฅ Performance Evolution

This project went through several major optimizations:

โŒ Naive Approach (Browser / Basic JS)

  • Single-threaded
  • Full base32 encoding per attempt
  • Extremely slow (hours+ for 4 chars)

โœ… Go + Goroutines

  • Multi-core parallelism
  • Massive speed improvement

โšก Removed Address.String() Calls

  • Avoided repeated base32 encoding
  • Reduced allocations
  • ~2–4x speed boost

๐Ÿš€ Final Optimization: NO Base32 Encoding

Instead of encoding addresses:

โœ… Convert target prefix → bit pattern
โœ… Generate (publicKey + checksum)
โœ… Compare bits directly

This eliminates the biggest bottleneck entirely.


๐Ÿง  Why This Is Fast

  • โœ… Zero string allocations in hot loop
  • โœ… Bit-level comparison (early exit)
  • โœ… Full CPU utilization
  • โœ… Minimal memory overhead

๐Ÿ“Š Real Performance Example

On a typical machine (e.g., my AMD Ryzen 7 5825U Mini PC):

~230,000 attempts/sec

Observed results:

  • โœ… 5-character prefix in 15 seconds (lucky run)
  • โœ… 5-character prefix in ~2 minutes (expected)

๐Ÿ› ๏ธ Installation

1. Clone the repo

git clone https://github.com/micah1701/algo-vanity.git
cd algo-vanity

2. Install dependencies

go mod tidy

3. Run

go run main.go

Or Compile to executable for even fasterness

go build -o algo-vanity.exe

./algo-vanity.exe HELLO

โ–ถ๏ธ Usage

Default (prefix = ABCD)

go run main.go

Custom Prefix

go run main.go HELLO

๐Ÿงพ Example Output

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

โš ๏ธ Important Notes

  • 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

About

Generate vanity-prefixed Algorand wallet addresses. Want your blockchain address to start with your first name or any other arbitrary short string? Brute-force the blockchain addresses you want in minutes!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages