Bitcoin Trezor Vanity Address
Generate Bitcoin vanity address for i.a. Trezor hardware wallet.
Addresses are generated into the MySQL database, and you can search for the desired address using SQL query. The database also stores mnemonic seeds (for the addresses collection) and private keys for individual addresses.
You can use external MySQL database because private data are encrypted using AES-256. By default, the script generates the first 5 addresses in the BIP44 (1...) and BIP49 (3...) format for each seed phrase.
In addition, the project includes a script that allows you to categorize addresses based on the contents of words from the dictionary.
Project require PHP >= 7.1 (extensions
php-bcmath), MySQL database access and Composer dependency manager.
git clone firstname.lastname@example.org:borutainfo/BitcoinTrezorVanityAddress.git
*.examplefiles located in directory
config/, and set database access data and AES encryption passphrase.
Install composer dependencies:
Execute SQL queries from ddl.sql file, in your database, to create data structure.
Runing generation script
To start addresses generating, execute:
The addresses will appear in the database that you can search using the sql query e.g.
SELECT * FROM addresses WHERE address LIKE '%boruta%';
By default script is working for 2 minutes (you can change easily change this in
bin/GenerateVanityAddress.php file). You can run multiple instances in parallel, and put the script in the crontab (for default config:
*/2 * * * *).
Runing dictionary search
To start dictionary search of generated addresses, execute:
By default during
composer install there are downloaded dictionaries for English and Polish languages. You can remove, or add new dictionary files in
The script will iterate individual addresses and check the occurrence of words from the dictionary, and then add relevant information to the database.
This script also works for 2 minutes by default. You can run multiple processes at the same time because they are synchronized.
Private key / seed phrase decryption
To decrypt data, copy the encrypted data from the
mnemonic_seeds table (depending on what you want to decrypt), and paste it to
bin/DecryptData.php in place of
Then execute the following command:
As a result, you will receive decrypted data. You can import decrypted seed phrase into your Trezor using the restore option, or import private key to full node wallet.
The structure of the database is intuitive and contains foreign keys so moving around it should not be problem.
Use ddl.sql to create structure.