Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

octra-vanity

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

requirements

GPU ARCH
RTX 4000 series sm_89
RTX 3000 series sm_86
RTX 2000 / GTX 1600 sm_75
GTX 1000 series sm_61

build

Windows

also needs Visual Studio with Desktop development with C++ (free Community edition works).

cd vanity
build.bat

if it says cl.exe not found → open Visual Studio Installer → Modify → check Desktop development with C++ → install.

Linux

cd vanity
nvcc -O3 -arch=sm_89 -lm octra_vanity.cu -o octra_vanity
./octra_vanity

replace 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-toolkit

or install the full CUDA toolkit from nvidia for the latest version.

macOS

macOS dropped NVIDIA support in 2019 :(


usage

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.


how long will it take

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.


optimizations

this miner is heavily optimized for maximum throughput:

  1. 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.
  2. 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.
  3. 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%.
  4. Dedicated Point Doubling: Replaced a generic unified ed_add with a highly specialized and simplified ed_double function for the elliptic curve math, saving temporary variables and field multiplications.
  5. 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.

output

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.


valid characters

base58 — no 0, O, I, l. everything else is fair game.

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

notes

  • 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages