The fastest Tor v3 onion vanity address generator.
CPU-first, GPU-accelerated, automatic.
Onionloom measures your machine, picks the best CPU configuration, validates compatible GPU hardware, and generates custom .onion addresses at full speed. Every result is independently verified before it touches disk. No network, no config files.
.onion addresses are Tor v3 onion services, the modern standard for anonymous websites and services on the Tor network. Instead of something.com, you get an address like loom4skeblahblahblahblahblahblahblahblah.onion that routes all traffic through Tor, hiding both the server and the visitor.
Onionloom generates the cryptographic key pairs needed to run an onion service. Put the generated files in your Tor daemon's HiddenServiceDir and your site is live. You can run anything: a web server, an XMPP chat, a file share, a Bitcoin node.
And with Onionloom, the beginning of that address says whatever you want.
- Paired-coordinate CPU engine: one field inversion shared across thousands of candidates. Extremely efficient.
- Automatic GPU acceleration: Vulkan, DirectX 12, or Metal. GPU results are independently verified on CPU before any key is saved.
- No unsafe Rust: zero
unsafeblocks in the entire codebase. - Live throughput: expected, median, and 95th percentile time estimates updated in real time.
- Exact Tor format: tagged public key, expanded secret, and hostname with full readback validation.
- Never overwrites: existing key directories are refused, never replaced.
- OS randomness: all secrets from the operating system CSPRNG, zeroized after use.
- Resumable checkpoints: stop and resume long searches (opt-in, secret material warning).
- Linux-first: full Windows and macOS support.
Download from GitHub Releases. Just download and run:
| Platform | File |
|---|---|
| Linux x86_64 | onionloom-v1.0.0-linux-x86_64 |
| macOS (Apple Silicon + Intel) | onionloom-v1.0.0-macos-universal |
| Windows x86_64 | onionloom-v1.0.0-windows-x86_64.exe |
These are generic builds compatible with any machine. Verify with the published SHA256SUMS.
Compiling yourself targets your exact CPU, significantly faster than the generic binaries:
git clone https://github.com/chrisch88dev/onionloom
cd onionloom
./build.sh
build.sh enables native CPU instructions, full LTO, and symbol stripping. Linux only.
On macOS or Windows, or CPU-only:
cargo build --release --locked
cargo build --release --locked --no-default-features # CPU-only
The --locked flag pins exact dependency versions from Cargo.lock. This gives you the same tested build every time. Always use it for reproducible, reliable binaries.
cargo install onionloom --locked
Requires Rust 1.85 or newer.
./onionloom evaluate # measure this machine
./onionloom guess loom # estimate without generating
./onionloom search loom # generate a key (output: onions/)
./onionloom search loom -d ./keys --count 2
./onionloom search loom --continuous -d ./keys
./onionloom search longname --gpu off
./onionloom search longname --gpu force
./onionloom search loom --checkpoint /secure/path/loom.checkpoint
./onionloom verify # validate all keys in onions/
./onionloom verify ./keys/loom...onion
./onionloom benchmark --power full --trial-ms 500
./onionloom gpu # inspect GPU acceleration
Control how much CPU Onionloom uses. Default is full:
low: leave most CPU free for other workmedium: balance search and responsivenessfull: all available cores, no overclocking
Generated keys land in the onions/ directory (or wherever -d points). Each match gets its own folder named after the .onion address:
onions/loom4skeblahblahblah.onion/
hostname # your .onion address
hs_ed25519_public_key # public key (Tor tagged format)
hs_ed25519_secret_key # secret key (keep this safe)
To run a Tor onion service, point your Tor daemon at the key directory. In torrc:
HiddenServiceDir /path/to/onions/loom4skeblahblahblah.onion
HiddenServicePort 80 127.0.0.1:8080
Restart Tor and your site is live at that .onion address.
Onionloom detects compatible GPUs automatically. Every GPU result is independently verified on the CPU before a key is saved. If no compatible GPU is found, search falls back to CPU.
Requirements: 64-bit integer compute shaders, 128 or more workgroup lanes, sufficient workgroup storage.
| Platform | Backend | Compatible hardware |
|---|---|---|
| Linux | Vulkan | NVIDIA (GTX 900+), AMD (GCN 2+), Intel Arc |
| Windows | DirectX 12 or Vulkan | NVIDIA (GTX 900+), AMD (GCN 2+), Intel Arc |
| macOS | Metal | Apple Silicon (M1+), AMD, Intel |
Use --gpu off for CPU-only or --gpu force to require GPU.
Onionloom uses curve25519-dalek for all cryptographic operations. Every generated key is independently verified before output. Secret material is zeroized. Keys follow Tor's exact format with readback validation.
To report a vulnerability:
- GitHub private vulnerability reporting
- Email: chris@chrisch88.dev (PGP:
946C571F7423FF1E565EE5DFC9C0617647EC61F9)
Read CONTRIBUTING.md.
Apache License 2.0. Copyright (c) 2026 chrisch88dev and Onionloom contributors.