2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 19:00:13 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00
2024-11-28 21:43:16 +01:00

Ethereum Vanity Address Generator with CUDA

A high-performance Ethereum vanity address generator that uses CUDA GPU acceleration to quickly generate Ethereum addresses matching a desired prefix pattern. It includes optional balance checking functionality across multiple RPC endpoints and tracks best partial matches.

Features

  • 🚀 CUDA GPU acceleration for fast address generation
  • 🔍 Configurable prefix matching with support for hex characters
  • 💰 Optional balance checking across multiple RPC endpoints
  • Batch processing for efficient balance checks
  • 🔄 Automatic RPC failover and rate limit handling
  • 📊 Real-time status updates and progress tracking
  • 💾 Automatic saving of matches and addresses with balances
  • 🎯 Tracks best partial matches and saves them to JSON
  • 🔐 Secure private key generation using CUDA's RNG

Requirements

  • Python 3.7+
  • CUDA-capable NVIDIA GPU
  • PyCUDA
  • Web3.py
  • Other dependencies listed in requirements.txt

Installation

  1. Clone the repository:

    git clone https://github.com/tcsenpai/eth-vanity-address-generator-cuda.git
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Configure settings in .env file:

    # Enable balance checking (true/false)
    CHECK_BALANCES=true
    
    # RPC URLs for redundancy
    RPC_URLS=[
        "https://eth.llamarpc.com",
        "https://rpc.ankr.com/eth",
        "https://ethereum.publicnode.com",
        "https://1rpc.io/eth"
    ]
    
    # How many addresses to check in each batch
    BALANCE_BATCH_SIZE=100
    
    # Desired address prefix
    PREFIX=dEAD000000000000000042069420694206942069
    
    # Set to true for synchronous balance checking
    SYNC_MODE=false
    
    # CUDA batch size for address generation
    BATCH_SIZE=500
    

Usage

You can run either the pure CUDA version or the version with balance checking:

  1. CUDA-only version:

    ./find_address_fullcuda.sh
    
  2. CUDA with balance checking:

    ./find_address_and_check_balance.sh
    

The script will begin generating addresses and checking balances if enabled. Status updates are printed every 10 seconds (5s for the full cuda version without balance checking) and show:

  • Time elapsed
  • Total attempts
  • Generation speed
  • Prefix check speed
  • Balance check status
  • Best match found so far

When a matching address is found, it will be displayed along with its private key.

Output Files

  • found_addresses.txt: Contains addresses found with balances
  • best_matches.json: Tracks the best partial matches found
  • cuda_matches.json: Records all matches found by the CUDA miner

Configuration

The following settings can be configured in the .env file:

  • CHECK_BALANCES: Enable/disable balance checking (only works with balance checking version)
  • RPC_URLS: List of Ethereum RPC endpoints for redundancy (only works with balance checking version)
  • BALANCE_BATCH_SIZE: Number of addresses to check in each batch (only works with balance checking version)
  • PREFIX: Target address prefix
  • SYNC_MODE: Use synchronous or asynchronous balance checking
  • BATCH_SIZE: CUDA batch size for address generation

Tips

  • Longer prefixes will take exponentially more time to find
  • Consider using shorter prefixes for testing
  • Multiple RPC endpoints provide redundancy and failover
  • The system automatically tracks and saves best partial matches
  • CUDA batch size is optimized for RTX series GPUs
  • Balance checking automatically determines optimal batch sizes for each RPC

Performance

The following metrics are based on a RTX 4060 Mobile GPU (8GB VRAM).

  • The full cuda version without balance checking manages to check about 25,000,000 (25 million) addresses per second.
  • The balance checking version manages to check about 2000 prefixes and 1000 balances per second. Disabling balance checking increases the speed to about 12,000 prefixes per second.
Description
No description provided
Readme
Languages
Python 99.2%
Shell 0.8%