Generating Solana Vanity Addresses on the GPU With CUDA
A CUDA vanity address generator that runs Ed25519 keypair creation and Base58 encoding entirely on the GPU for over 1.5 million keys per second.
SOLRAGE is a CUDA implementation of Solana vanity address generation. A vanity address is a normal keypair whose public address happens to start or end with a chosen pattern, and finding one is pure brute force: generate keypairs, check the address, keep the match, discard the rest. The whole game is throughput, and SOLRAGE runs the entire loop on the GPU. On an RTX 4070 Laptop GPU it holds a steady 1.5 million keys per second, roughly six times the 334K a CPU generator manages.
Moving the Whole Pipeline onto the GPU
The interesting engineering choice is that nothing meaningful happens on the CPU. Generating a candidate address is two steps, deriving an Ed25519 keypair and Base58-encoding the public key, and both run in CUDA. That matters because a hybrid design, where the GPU makes keys and the CPU encodes and checks them, would bottleneck on the handoff. Every keypair shipped back to the host to be inspected is bandwidth and latency spent, and at millions of candidates a second that cost dominates.
Keeping Ed25519 and Base58 on the device means each of the thousands of GPU threads runs the full generate-and-check by itself and only surfaces a result when it actually finds a match. The parallelism is the point: brute force is exactly the workload a GPU is built for, thousands of identical independent trials with no coordination between them.
The Base58 Detail That Constrains Everything
One small property of Base58 shapes what users can even ask for. Solana addresses can only begin with certain characters, the digits 1 through 9 and the letters A through H, with the 2-to-4 range most common. So a prefix like Sol is simply impossible, and the tool is honest about which patterns are valid rather than spinning forever on one that can never appear. The matcher supports prefix, suffix, combined, and optional case-insensitive matching, and saves each keypair the instant it is found so a long run never loses a hit.
The takeaway is that for an embarrassingly parallel search, the win comes from refusing to leave the GPU. Once both the cryptography and the encoding live on the device, the host stops being a bottleneck and the hardware gets to do what it is good at.
Have something that needs building, or stabilizing?
These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.
Work with us →