A bLaZinGlY fAsT tool for grinding vanity addresses on Solana.
Typically, solana developers wishing to obtain a vanity address for their program or token grind out ed25519 keypairs and sign off on a SystemInstruction::CreateAccount
instruction. However, by using SystemInstruction::CreateAccountWithSeed
, developers can bypass ed25519 and get extreme speedups on address searches. Although not as generic, this method covers many use cases.
By default, vanity compiles for cpu. Install via
cargo install vanity
To compile for gpu, install via
cargo install vanity --features=gpu
If you don't have a GPU, consider using vast.ai. Pls use this referral link so that I can keep using GPUs.
Refer to the help via vanity --help
for information on usage.
Usage: vanity [OPTIONS] --base <BASE> --owner <OWNER> --target <TARGET>
Options:
--base <BASE> The pubkey that will be the signer for the CreateAccountWithSeed instruction
--owner <OWNER> The account owner, e.g. BPFLoaderUpgradeab1e11111111111111111111111 or TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
--target <TARGET> The target prefix for the pubkey
--case-insensitive Whether user cares about the case of the pubkey
--logfile <LOGFILE> Optional log file
--num-cpus <NUM_CPUS> Number of cpu threads to use for mining [default: 0]
-h, --help Print help
To actually make use of the resulting seed, refer to the solana_program
docs:
pub fn create_account_with_seed(
from_pubkey: &Pubkey,
// this is the resulting address, obtained via Pubkey::create_with_seed
to_pubkey: &Pubkey,
base: &Pubkey,
seed: &str,
lamports: u64,
space: u64,
owner: &Pubkey,
) -> Instruction
yes
one of y'all can fill this out. RTX 4090 does ≈1 billion address searches per second.
- The sha2 implementation used in this library is taken from here, which is in the public domain.
- The base58 encoding implementation is taken from firedancer with heavy modifications for use in cuda & case insensitive encodings, licensed under APACHE-2.0