This is a gpu vanity address miner for Octra network, it brute-forces ed25519 keypairs until your address looks the way you want. You have to set the GPU parameter in the .bat file.
oct XXXXX xKp3mNvQr7wZsYdF2jBgTcLuA8eX4nRo
^^^^^
you pick this part
- NVIDIA GPU (Maxwell or newer)
- CUDA Toolkit 11+
| GPU | ARCH |
|---|---|
| RTX 4000 series | sm_89 |
| RTX 3000 series | sm_86 |
| RTX 2000 / GTX 1600 | sm_75 |
| GTX 1000 series | sm_61 |
also needs Visual Studio with Desktop development with C++ (free Community edition works).
cd vanity
build.batif it says cl.exe not found → open Visual Studio Installer → Modify → check Desktop development with C++ → install.
cd vanity
nvcc -O3 -arch=sm_89 -lm octra_vanity.cu -o octra_vanity
./octra_vanityreplace sm_89 with your GPU's compute capability (check with nvidia-smi --query-gpu=compute_cap --format=csv).
needs nvcc in PATH. on Ubuntu/Debian:
sudo apt install nvidia-cuda-toolkitor install the full CUDA toolkit from nvidia for the latest version.
macOS dropped NVIDIA support in 2019 :(
just run it, no flags needed:
octra_vanity.exe
picks the mode interactively:
1. Prefix octHELLO...
2. Suffix ...WORLD
3. Anywhere ...DEGEN...
4. Repeating octXXXXX... or ...ZZZZZ or 6 same chars anywhere
type your pattern, hit enter a few times for defaults, it starts mining.
roughly 25–35M keys/sec on an RTX 4090 (up from 3-5M after major optimizations!).
| what you want | expected time |
|---|---|
3-char prefix (octABC) |
< 1 sec |
4-char prefix (octABCD) |
< 1 sec |
5-char prefix (octHELLO) |
~10-15 sec |
| 6-char prefix | ~10-15 min |
| 7-char prefix | ~10 hours |
5 repeating (octXXXXX) |
< 1 sec |
| 6 repeating | ~15 sec |
| 7 repeating | ~15 min |
difficulty doubles roughly every extra character. plan accordingly.
this miner is heavily optimized for maximum throughput:
- Precomputed Tables for Ed25519 (Windowed Scalar Multiplication): Bypasses the slow "double-and-add" method for public key derivation by precomputing a table of curve points for 8-bit windows during initialization, drastically reducing the number of heavy GF math operations required per key.
- Truncated SHA-512: Seed hash needs a SHA-512 digest, but Ed25519 only cares about the first 32 bytes. The SHA-512 implementation was rewritten to stop processing early and output directly into 32-bit integers, bypassing unnecessary memory writes.
- 32-bit Base58 Encoding & Matching: The Base58 routine and pattern matchers work on arrays of 32-bit integers instead of 8-bit bytes, reducing division/modulo operations on the GPU by ~75%.
- Dedicated Point Doubling: Replaced a generic unified
ed_addwith a highly specialized and simplifieded_doublefunction for the elliptic curve math, saving temporary variables and field multiplications. - Register Pressure Reduction: Pack values efficiently to drop the register count per thread significantly (down to 188 registers per thread), allowing much better occupancy and switching speed on the GPU streaming multiprocessors.
when found, prints this:
╔══════════════════════════════════════════╗
║ FOUND! ║
╚══════════════════════════════════════════╝
Address octHELLOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Private key <base64>
Tried 11,534,336 keys in 2s (5,767,168 keys/s)
Saved wallet_vanity_HELLOxxx.json
the .json file is ready to drop into the webcli wallet importer as-is.
base58 — no 0, O, I, l. everything else is fair game.
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
- each run uses a fresh random seed so two runs never duplicate
- the found wallet json matches the exact format the octra webcli expects
- Ctrl+C to cancel at any point