An open API service indexing awesome lists of open source software.

https://github.com/cavemanloverboy/vanity


https://github.com/cavemanloverboy/vanity

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# `vanity`

A *bLaZinGlY fAsT* tool for grinding vanity addresses on Solana.

## 1) What

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.

## 2) H

By default, vanity compiles for cpu. Install via

```bash
cargo install vanity
```

To compile for gpu, install via

```bash
cargo install vanity --features=gpu
```
If you don't have a GPU, consider using [vast.ai](https://cloud.vast.ai/?ref_id=126830). Pls use this referral link so that I can keep using GPUs.

Refer to the help via `vanity --help` for information on usage.

```bash

Usage: vanity [OPTIONS] --base --owner --target

Options:
--base The pubkey that will be the signer for the CreateAccountWithSeed instruction
--owner The account owner, e.g. BPFLoaderUpgradeab1e11111111111111111111111 or TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
--target The target prefix for the pubkey
--case-insensitive Whether user cares about the case of the pubkey
--logfile Optional log file
--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:

```rust
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
```

## Contributions

yes

## Performance

one of y'all can fill this out. RTX 4090 does ≈1 billion address searches per second.

## Acknowledgements, External Libraries

- The sha2 implementation used in this library is taken from [here](https://github.com/mochimodev/cuda-hashing-algos), 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