本文へ移動
cccskills
無料GitHub で公開

pump-rust-vanity

Production-grade multi-threaded Rust vanity address generator for Solana — 100K+ keys/sec using Rayon parallel iterators with solana-sdk, Base58 pattern matching, prefix/suffix support, security-hardened file output, and Criterion benchmarks.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Rust Vanity Generator — High-Performance Solana Address Mining

Production-grade Rust binary achieving 100K+ keys/sec using Rayon parallel iterators with security-hardened file output and Solana CLI compatibility.

Architecture

CLI Args ──► VanityConfig ──► VanityGenerator
                                    │
                              Rayon par_iter
                              ┌─────┼─────┐
                            Thread Thread Thread ...
                              │     │     │
                           Keypair::new() per iteration
                              │     │     │
                           Base58 encode + match
                              │     │     │
                              └─────┼─────┘
                                    │
                              AtomicBool found
                                    │
                              SecureOutput (0o600)

CLI Arguments

ArgumentDescription
--prefixRequired Base58 prefix to match
--suffixOptional Base58 suffix
--outputOutput file path (default: stdout)
--threadsNumber of threads (default: all CPUs)

Core Types

struct VanityConfig {
    prefix: String,
    suffix: Option<String>,
    output: Option<PathBuf>,
    threads: Option<usize>,
}

struct GeneratedAddress {
    keypair: Keypair,
    address: String,
    attempts: u64,
}

Generation Engine

fn generate(config: &VanityConfig) -> Result<GeneratedAddress> {
    let found = AtomicBool::new(false);
    let result = (0..num_cpus::get())
        .into_par_iter()
        .find_map_any(|_| {
            let mut attempts = 0u64;
            loop {
                if found.load(Ordering::Relaxed) { return None; }
                attempts += 1;
                let keypair = Keypair::new();
                let address = keypair.pubkey().to_string();
                if matches_pattern(&address, &config) {
                    found.store(true, Ordering::Relaxed);
                    return Some(GeneratedAddress { keypair, address, attempts });
                }
            }
        });
    result.ok_or_else(|| anyhow!("No match found"))
}

Security Features

FeatureImplementation
CSPRNGOsRng via solana-sdk
Memory cleanupZeroize trait on secret key bytes
File permissions0o600 via std::fs::set_permissions
No networkPure offline operation

Dependencies

CratePurpose
solana-sdkKeypair generation, Base58, signing
rayonData-parallel iteration
clapCLI argument parsing
anyhowError handling
criterionBenchmarking

Testing

cargo test                            # Unit + integration tests
cargo test --test security_tests      # Security-focused tests
cargo bench                           # Criterion benchmarks

Patterns to Follow

  • Only use solana-sdk for cryptographic operations
  • Use Zeroize on all key material
  • Set file permissions to 0o600 immediately after writing
  • Use AtomicBool for cross-thread termination signaling
  • Use find_map_any for early termination on first match

Common Pitfalls

  • Base58 is case-sensitive — pump ≠ Pump
  • Longer prefixes grow exponentially harder (~58× per character)
  • Keypair::new() uses OS entropy — do not seed with user input
  • rayon thread pool size should match CPU cores for optimal throughput

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

1password

無料

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks SolanaOS to add a note, list notes, search notes, or manage note folders.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

Create, search, and manage Bear notes via grizzly CLI.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

blucli

無料

BluOS CLI (blu) for discovery, playback, grouping, and volume.

日本語の概要は準備中です。原文の説明を表示しています。

x402agent/SolanaOS92026年7月23日 更新

x402agent のスキルをすべて見る

このスキルの問題を報告する