Crates.io | address-artisan |
lib.rs | address-artisan |
version | |
source | src |
created_at | 2025-02-01 16:07:23.046827 |
updated_at | 2025-02-01 22:01:22.206669 |
description | A tool for generating vanity P2PKH Bitcoin addresses. |
homepage | |
repository | https://github.com/seaasses/address-artisan |
max_upload_size | |
id | 1538552 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Address Artisan is a vanity Bitcoin P2PKH address generator based on the BIP32 xpub key derivation.
This software is inspired by Senzu and aims to be:
🔒 Secure: using BIP32 key derivation you can generate vanity addresses for your hardware wallet! 🤯
âš¡ Fast: match recognition algorithm that does not require the checksum calculation.
😎 Cool: "1There1sNoSpoon" is much cooler than "bc1qtheresn0sp00n". P2PKH for the win! 🎉
This tool is not (and cannot be) compliant with BIP44. But can be used on wallets that are BIP 44 compliant. Here is how it works:
BIP 44 standardizes 5 levels of derivation:
m / purpose' / coin_type' / account' / change / address_index
where:
m
is the master keypurpose'
is the constant 44' (0x8000002C) - respecting BIP43coin_type'
is 0' (0x80000000) for Bitcoinaccount'
is the account number so user can organize the funds like in a bank account. Greater than 0' (0x80000000)change
0 (0x00) for receive addresses, 1 (0x01) for change addressesaddress_index
is the index of the address in the accountThis tool brute-forces a path of the form:
xpub_path' / random_number / <n derivation paths> / 0 / address_index
where:
xpub_path'
is the derivation path provided by the user (that should be hardened)random_number
is a number randomly generated to get a different key space for each run. Less than 0' (0x80000000)<n derivation paths>
1 or more derivation paths that will expand when exausting the key space. Each less than 0' (0x80000000)0
is the constant 0 (0x00)address_index
is the index of the address in the account, less or equal to max_depth
cli argumentBy leaving the second last derivation path as 0, BIP44 compliant wallets will correctly recognize the vanity address as the address_index
th receive address if the inputed path in the wallet is xpub_path / radom_number / <n derivation paths>