Git Product home page Git Product logo

vanity-eth-address's Introduction

Vanity Eth Address

Vanity Eth Address is a tool to generate Ethereum addresses that match certain criteria, accelerated with NVIDIA CUDA-enabled GPUs.

Usage

./vanity-eth-addresss [PARAMETERS]
    Scoring methods
      (-lz) --leading-zeros               Count zero bytes at the start of the address
       (-z) --zeros                       Count zero bytes anywhere in the address
    Modes (normal addresses by default)
       (-c) --contract                    Search for addresses and score the contract address generated using nonce=0
      (-c2) --contract2                   Search for contract addresses using the CREATE2 opcode
      (-c3) --contract3                   Search for contract addresses using a CREATE3 proxy deployer
    Other:
       (-d) --device <device_number>      Use device <device_number> (Add one for each device for multi-gpu)
       (-b) --bytecode <filename>         File containing contract bytecode (only needed when using --contract2 or --contract3)
       (-a) --address <address>           Sender contract address (only needed when using --contract2 or --contract3)
      (-ad) --deployer-address <address>  Deployer contract address (only needed when using --contract3)
       (-w) --work-scale <num>            Defaults to 15. Scales the work done in each kernel. If your GPU finishes kernels within a few seconds, you may benefit from increasing this number.

Examples:
    ./vanity-eth-address --zeros --device 0 --device 2 --work-scale 17
    ./vanity-eth-address --leading-zeros --contract2 --bytecode bytecode.txt --address 0x0000000000000000000000000000000000000000 --device 0

Benchmarks

GPU Normal addresses Contract addresses CREATE2 addresses
4090 3800M/s 2050M/s 4800M/s
3090 1600M/s 850M/s 2300M/s
3070 1000M/s 550M/s 1300M/s

Note that configuration and environment can affect performance.

Requirements

  • A NVIDIA CUDA-enabled GPU with a compute capability of at least 5.2 (Roughly anything above a GeForce GTX 950. For a full list see here).

vanity-eth-address's People

Contributors

mrspike63 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

vanity-eth-address's Issues

Create 3 support

It would be great to add create3 support for just using the salt and not needing the initcode hash.

Generate wallets leading with a different number instead of zero.

__device__ int count_zero_bytes(uint32_t x) {
    int n = 0;
    n += ((x & 0xFF) == 0);
    n += ((x & 0xFF00) == 0);
    n += ((x & 0xFF0000) == 0);
    n += ((x & 0xFF000000) == 0);
    return n;
}

__device__ int score_zero_bytes(Address a) {
    int n = 0;
    n += count_zero_bytes(a.a);
    n += count_zero_bytes(a.b);
    n += count_zero_bytes(a.c);
    n += count_zero_bytes(a.d);
    n += count_zero_bytes(a.e);
    return n;
}

__device__ int score_leading_zeros(Address a) {
    int n = __clz(a.a);
    if (n == 32) {
        n += __clz(a.b);

        if (n == 64) {
            n += __clz(a.c);

            if (n == 96) {
                n += __clz(a.d);

                if (n == 128) {
                    n += __clz(a.e);
                }
            }
        }
    }

    return n >> 3;
}

I tried to read your code for editing but I didn't quite understand. How can I generate wallets starting with the number 9 instead of 0? Perhaps the leading number should be a parameter instead of being fixed as --leading-zeros.

Invalid bytecode in file

$ ./x86_64_linux.bin -d 0 -d 1 -d 2 -d 3 -d 4 -d 5 -lz 10 -w 20 --contract3 --bytecode bytecode.txt --deployer-address 0x9fBB3DF7C40Da2e5A0dE984fFE2CCB7C47cd0ABf --address 0xc5067d91d18cd4446654e516b0c175c7f68a6894

i don't know why it keeps telling invalid bytecode in file, i tried the 60xxxxx bytecode from remix and 73xxxxxx deployed bytecode without success, tried also to add 0x at the beginning..

What format is expecting for contract3 vanity address gen?

Missing vanity-eth-addresss script

Hey your README shows a "./vanity-eth-addresss" launch file, is there any chance you could share that too?

cheers

EDIT: cuda noob, figured it out, thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.