๐Ÿฆš Brute-force vanity addresses generator for EVM-based blockchains. Vanity addresses are crypto public keys, personalized and created respecting a series of parameters given by the users of said addresses. This with the aim of making them more personal and easily identifiable, but without giving up the security they provide. Vanify is a complete implementation of the brute-force vanity address generator for EVM-based blockchains, such as Ethereum, Binance Smart Chain, Polygon, etc, written in Rust. It supports prefix, suffix, and multiple infixes and disfixes validation, JSON, CSV, XML, and TSV export, optional benchmarking, hex strings formatting, and more. ## Table of contents - [Table of contents](#table-of-contents) - [Installation](#installation) - [From source](#from-source) - [From crates.io](#from-cratesio) - [Usage](#usage) - [As a standalone application](#as-a-standalone-application) - [Options](#options) - [As a library](#as-a-library) - [New features](#new-features) - [License](#license) - [Contributing](#contributing) ## Installation ### From source You can install Vanify from source by cloning the repository and running the following commands: ```bash $ git clone $ cd vanify $ cargo install --path . ``` ### From crates.io You can install Vanify from [crates.io](https://crates.io/crates/vanify) by running the following command: ```bash $ cargo install vanify ``` ## Usage Vanify can be used in two ways: 1. As a standalone application, which will generate a random address and check if it matches the given parameters. 2. As a library, which can be used to generate addresses in a loop. ### As a standalone application To use Vanify as a standalone application, you can run the following command: ```bash $ vanify -p 1234 -s 5678 -n 10 ``` This will generate 10 addresses starting with `0x1234` and ending with `5678`. #### Options It supports the following parameters: ``` USAGE: vanify [OPTIONS] OPTIONS: -b, --benchmark Benchmark mode -c, --csv Export to CSV file -e, --excludes-all ... Excludes all substring(s) -E, --excludes-any ... Excludes any substring(s) -f, --filename Filename for exports -h, --help Print help information -i, --includes-all ... Includes all substring(s) -I, --includes-any ... Includes any substring(s) -j, --json Export to JSON file -n, --number Number of addresses to search for -p, --prefix Prefix to search for -r, --random Randomize private key generation -R, --random-unique Randomize private key generation and ensure uniqueness -s, --suffix Suffix to search for -t, --tsv Export to TSV file -T, --trim-hex Trim 0x from output keys -v, --verbose Verbose output -V, --version Print version information -x, --xml Export to XML file -X, --xlsx Export to XLSX file ``` If a file export option is provided, the results will be exported to relative path /results. ### As a library To use Vanify as a library, you can add it to your `Cargo.toml` file: ```toml [dependencies] vanify = "0.2.0" ``` And then use it in your code: ```rust use vanify::vanity; ``` ## New features 0.2.0 comes with the following new features: - โœ… Added input validation - ๐Ÿ”  Added support for upper case affix inputting - ๐Ÿงช Added more comprehensive tests - โŒ Better error handling - ๐Ÿ—๏ธ Better module structure - ๐Ÿ“ Better documentation - ๐Ÿ’… Prettier output - ๐ŸŽฒ Choose between random or sequential private key generation - ๐Ÿช† Added includes and excludes ALL or OR logic - โŽ Added export to .xlsx And solves the following issues: - ๐Ÿ› Fixed export to .tsv formatting bug ## License Vanify is licensed under the [MIT License](LICENSE). ## Contributing If you want to contribute to Vanify, you can do so by opening a pull request or an issue.