No description
Find a file
2026-03-29 20:52:30 -06:00
.gitignore revanity-go: vanity address generator for Reticulum/LXMF 2026-03-01 05:18:42 -07:00
core.go add multi-pattern search with comma-separated values 2026-03-29 20:38:41 -06:00
export.go add multi-pattern search with comma-separated values 2026-03-29 20:38:41 -06:00
generator.go add multi-pattern search with comma-separated values 2026-03-29 20:38:41 -06:00
go.mod revanity-go: vanity address generator for Reticulum/LXMF 2026-03-01 05:18:42 -07:00
go.sum add continuous loop mode and performance optimizations 2026-03-29 20:18:05 -06:00
LICENSE update README to match Ratkey repo style 2026-03-29 20:18:52 -06:00
main.go add -no-dupe flag to skip duplicate pattern matches 2026-03-29 20:45:07 -06:00
matcher.go add continuous loop mode and performance optimizations 2026-03-29 20:18:05 -06:00
README.md Update README.md 2026-03-29 20:52:30 -06:00

revanity-go

Vanity address generator for Reticulum and LXMF networks.

Go 1.20+ License: MIT Status: Stable


Brute-forces cryptographic key pairs in parallel until it finds one whose destination hash matches your pattern. Uses libsodium's hand-optimized ARM64 assembly for X25519 scalar multiplication on Apple Silicon.

Install

Requires libsodium and Go 1.20+.

Step 1

macOS

brew install libsodium

Linux

sudo apt install libsodium-dev

Step 2

git clone https://github.com/ratspeak/revanity-go.git
cd revanity-go
CGO_ENABLED=1 go build -o revanity-go

Usage

# Find address starting with "dead"
./revanity-go -prefix dead

# Other match modes
./revanity-go -suffix cafe
./revanity-go -contains beef
./revanity-go -regex "^(dead|beef)"

# Options
./revanity-go -prefix dead -workers 8                # set worker count
./revanity-go -prefix dead -dest nomadnetwork.node   # different dest type
./revanity-go -prefix deadbeef -dry-run              # estimate difficulty only
./revanity-go -prefix dead -quiet                    # output address only

Search for multiple patterns at once with comma-separated values. Stops automatically when every pattern has at least one match. Duplicates found along the way are saved too.

./revanity-go -prefix aa,bb,cc
./revanity-go -prefix dead,beef,cafe,babe       # find all four
./revanity-go -prefix dead,beef,cafe -no-dupe   # exactly one result per pattern

Use -no-dupe to skip duplicate matches — the output will contain exactly one identity per pattern.

Loop Mode

Search continuously, collecting every match instead of stopping at the first one.

./revanity-go -prefix dead -loop
./revanity-go -prefix dead -loop -output my_results   # custom output directory

Both multi-pattern and loop mode save results to results/ (or the directory specified by -output):

  • <mode>_<patterns>.jsonl — one JSON object per line with dest hash, identity hash, matched pattern, private key (hex/base32/base64), all destination hashes, and metadata. Append-safe across runs.
  • <dest_hash>.identity — individual 64-byte binary keys for direct import into Sideband, Nomadnet, or any RNS application.

Output

In single mode (without -loop), two files are saved on match:

  • <address>.identity — 64-byte binary key (import directly into Sideband/Nomadnet/any RNS app)
  • <address>.txt — human-readable info with private key formats and import instructions

How It Works

Reticulum addresses are truncated SHA-256 hashes of Ed25519/X25519 public keys. revanity-go generates random keypairs in parallel, hashes them, and checks against your target pattern. Longer patterns take exponentially longer — each additional hex character multiplies the average time by 16x.

Length Attempts Time (8 cores)
4 chars ~65K seconds
6 chars ~17M minutes
8 chars ~4.3B hours

License

MIT