Bitcoin Forum
April 24, 2024, 11:18:56 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: vanitygen-hd - A Vanity HD/HDM Wallet Generator  (Read 499 times)
zealic (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 61


View Profile
April 26, 2020, 05:10:31 AM
Last edit: May 11, 2020, 10:53:19 AM by zealic
Merited by LoyceV (15), malevolent (13), HCP (10), ABCbits (9), suchmoon (4), o_e_l_e_o (4), OgNasty (2), mocacinno (1), tsaroz (1), Husna QA (1)
 #1

Because I need it, it is mainly for quick and easy identification, so I wrote vanitygen-hd.

vanitygen-hd supports generating HD wallets and HDM (multi-signature) wallets.

Fully open source, see Github: https://github.com/zealic/vanitygen-hd


ATTENTION: Don't share/post your MNEMONIC to anyone.


HD Wallet
Hierarchical Deterministic Wallet generated vanity address path is m/44'/0'/0'/0/0(first wallet address).

Using Docker to run:

Code:
# CLI
vanitygen-hd generate HDD BTC 999 666

# Docker
docker run -it --rm --network=none zealic/vanitygen-hd generate HDD BTC 999 666

You will got below vanity address with prefix HDD:

Code:
- address: 1HDDGgRFrtY38ZVVTtkgbBS4aUwE2rwUhz
  mnemonic: behave crack outer fine rude dwarf verb prosper because split loyal blue cream jar merge cupboard prize normal subway celery unfold alarm blue fetch

According to your CPU frequency and vanity address requirements, the time to generate mnemonic will gradually become longer. Generally, 3~4 length addresses are recommended.

HDM Wallet
If you want generate Multisig Hierarchical Deterministic Wallet, use --co-signers and --co-members.
Multisig Hierarchical Deterministic Wallet generated vanity address path is m/45'/<CO_SIGNER_INDEX>/0/0.

Prepare co-signers public keys file co-signers.yml:

Code:
# Public key of co-signer-1, path is "m/45'/1"
- xpub68RRmuSKe9yhgCoVr7pLaRTPZrDwekTbvpMGC9iSukzFYSbQJZusJRiLr8zYfRiZRJV2wauwWo1jnBMDDGz5ZGhfvB5UKvAzHdvtF6qNHaW
# Public key of co-signer-2, path is "m/45'/2"
- xpub68uxBBwmt9cY6RY1BVHHUwH7dLC2G98QPHpABi71eaDZuGWxZHEB4UAFVgawcuTysnnq82CJP28uEzzCRSQQYZX6sAxKsSR9RqNauA3YVaH

Generate with HDM wallet

Code:
# CLI
vanitygen-hd generate --co-signers=/co-signers.yml HDD BTC 999 666

# Docker
docker run -it --rm --network=none \
  -v $PWD/co-signers.yml:/co-signers.yml \
  zealic/vanitygen-hd \
  generate --co-signers=/co-signers.yml HDD BTC 999 666

Got vanity address, that public key path is "m/45'/0":

Code:
- address: 3666kmVbsBF6K5Di8sUef1Qg9fp2wxFYxC
  parentAddress: 1LFsUUBtEg2PS8HALDi48fSUcjVcF6Htpg
  mnemonic: detail walnut stock this history ivory stamp leaf half marine inspire fitness erase apple flee bird length dizzy rubber open index print crystal boring


Usage
Quote
Usage: vanitygen-hd [options] [command]

Options:
  -V, --version                   output the version number
  -h, --help                      display help for command

Commands:
  generate [options] [rule-list]
    Options:
      -b, --bits <int>               BIP32 specifies the entropy length to be tween 128 and 256 bits and a multiple of 32 bits. (default: 256)
      -w, --workers <int>            Numeber of parallel worker, use 0 as CPU num. (default: 0)
      -s, --co-signers <yaml-file>   Co-signers YAML file, include m/45'/{1-n} public key array.
      -m, --co-members <int>         Co-signers member num, use 0 as 'MAX(1,LEN(co_signers))'. (default: 0)
      -f, --rules-file <rules-file>  One rule per line, allowing '#' to be a comment. (default: "rules.txt")
      -h, --help                     display help for command
  help [command]                  display help for command


Downloads
Support Windows, MacOS, Linux

https://github.com/zealic/vanitygen-hd/releases


ATTENTION: It is not recommended to use it with an Internet connection.
If you confirm this is necessary, it is recommended to operate in a virtual machine environment.
1713957536
Hero Member
*
Offline Offline

Posts: 1713957536

View Profile Personal Message (Offline)

Ignore
1713957536
Reply with quote  #2

1713957536
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
LoyceV
Legendary
*
Online Online

Activity: 3290
Merit: 16542


Thick-Skinned Gang Leader and Golden Feather 2021


View Profile WWW
April 27, 2020, 09:12:42 AM
 #2

HD Wallet
Hierarchical Deterministic Wallet generated vanity address path is m/44'/0'/0'/0/0(first wallet address).
This is kinda cool, I've tested your sample mnemonic on https://iancoleman.io/bip39/ and it nicely shows the first address is a vanity address. I did however not test your software myself (I'm always paranoid to install things).

I would shower you with Merit, but I'm not sure how secure this is and I don't want people to think I endorse something I haven't tested and I can't check the source myself. So I'll see how this topic develops first.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
April 28, 2020, 11:38:58 PM
Merited by LoyceV (4), ABCbits (1)
 #3

...I'm not sure how secure this is and I don't want people to think I endorse something I haven't tested and I can't check the source myself.
Basically works the same as the other "vanity" generators... except instead of generating and testing random keys, this one generates random seeds/mnemonics and tests to see if the address at index m/44'/0'/0'/0/0 matches the given prefix.

From a (brief) review of the code, it seems to use bitcoinjs-lib and bip39 libraries to generate the mnemonics/seeds and HD wallets. As far as I'm aware, there aren't any known vulnerabilities with either of those libraries... ie. bad RNG etc... and "bitcoinjs" is fairly well known and used.

This looks like a fairly clean implementation tbh... albeit, probably not the most 'efficient'...


I would shower you with Merit
@OP, have 10 internetz from me Wink

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
vozphongtom
Full Member
***
Offline Offline

Activity: 386
Merit: 100


View Profile
May 02, 2020, 06:16:14 AM
 #4

i don't see Commands "out file" after generate address .
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
May 02, 2020, 09:50:51 AM
 #5

As far as I'm aware... it doesn't generate an "out file". It simply displays the results to the screen/terminal/stdout etc. You need to write it down or lose it forever if the command/terminal window is closed.

Saving it to a file would probably be a "bad idea"™ anyway, as it might leave traces of your seed behind on the file system.


█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
dextronomous
Full Member
***
Offline Offline

Activity: 427
Merit: 105


View Profile
May 04, 2020, 12:12:12 AM
Last edit: May 04, 2020, 12:49:58 AM by dextronomous
 #6

does not work in windows. does not recognize the options got it now btw.
how does a windows run of this should like., without the docker
thankxs
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
May 04, 2020, 07:02:01 AM
 #7

does not work in windows. does not recognize the options got it now btw.
how does a windows run of this should like., without the docker
thankxs
Seems like you need some extra work to made "typescript" files (aka .ts) stuff work in Windows... I found this on stackexchange: https://stackoverflow.com/questions/33535879/how-to-run-typescript-files-from-command-line

It "sort of" works... in that it compiles to .js using tsc (with errors)... and I can then run with "node"... but I don't think it's working 100% correctly... it'll spit out vanitygen seeds, but it seems to be "finding" weird combinations that I didn't request, and I don't seem to be able to stop it with CTRL+C etc... Undecided

Might be easier to use VirtualBox or similar to run it using a Linux VM+docker etc

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
zealic (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 61


View Profile
May 11, 2020, 10:34:47 AM
Merited by ABCbits (1)
 #8

Using Docker to run:

Code:
docker run -it --rm --network=none zealic/vanitygen-hd generate HDD BTC 999 666

Glad to see guide to explicitly disable network of the docker container, is this the reason you use docker rather than usual NodeJS software?

Yes, like you, I don't trust any mnemonic generated by third-party wallet software,
so I will only generate it completely in an offline environment.
zealic (OP)
Newbie
*
Offline Offline

Activity: 3
Merit: 61


View Profile
May 11, 2020, 10:47:34 AM
 #9

does not work in windows. does not recognize the options got it now btw.
how does a windows run of this should like., without the docker
thankxs

There are currently MacOS, Windows, Linux releases.

https://github.com/zealic/vanitygen-hd/releases

It is not recommended to use it with an Internet connection. If you confirm this is necessary, it is recommended to operate in a virtual machine environment.
Chris!
Legendary
*
Offline Offline

Activity: 1382
Merit: 1122



View Profile
May 12, 2020, 12:33:55 PM
 #10

Omg no way! I was just asking about this kind of thing a couple months ago. Hopefully I have some time to try it out in the next couple of weeks.
tsaroz
Legendary
*
Offline Offline

Activity: 2926
Merit: 1069


★Bitvest.io★ Play Plinko or Invest!


View Profile WWW
May 12, 2020, 01:52:44 PM
 #11

Job well done. I was looking for this.

Here's a small tutorial for Linux users to create a HD wallet with their desired prefix.(1prefix....)

1. Download the latest tar.gz file from official releases https://github.com/zealic/vanitygen-hd/releases

2. Extract the tar.gz file.

3. Go to the directory where the extracted executable file lies and open the terminal there.

4. type "./vanitygen-hd_linux-amd64 generate (your desired prefix string)"
    For an example, I want to have an address with 1tsa
  
Code:
./vanitygen-hd_linux-amd64 generate tsa

You can put multiple string after generate if you want to have any of those prefix. Letters are case sensitive.

Code:
./vanitygen-hd_linux-amd64 generate tsa 2345 BTC

5. The address and nemonic phrase would be displayed in the terminal itself.

6. When you are done, kill the process with Ctrl+Z before exiting.

Note: The longer your prefix, longer time it takes.



.
.BIG WINNER!.
[15.00000000 BTC]


▄████████████████████▄
██████████████████████
██████████▀▀██████████
█████████░░░░█████████
██████████▄▄██████████
███████▀▀████▀▀███████
██████░░░░██░░░░██████
███████▄▄████▄▄███████
████▀▀████▀▀████▀▀████
███░░░░██░░░░██░░░░███
████▄▄████▄▄████▄▄████
██████████████████████

▀████████████████████▀
▄████████████████████▄
██████████████████████
█████▀▀█▀▀▀▀▀▀██▀▀████
█████░░░░░░░░░░░░░████
█████░░░░░░░░░░░░▄████
█████░░▄███▄░░░░██████
█████▄▄███▀░░░░▄██████
█████████░░░░░░███████
████████░░░░░░░███████
███████░░░░░░░░███████
███████▄▄▄▄▄▄▄▄███████

██████████████████████
▀████████████████████▀
▄████████████████████▄
███████████████▀▀▀▀▀▀▀
███████████▀▀▄▄█░░░░░█
█████████▀░░█████░░░░█
███████▀░░░░░████▀░░░▀
██████░░░░░░░░▀▄▄█████
█████░▄░░░░░▄██████▀▀█
████░████▄░███████░░░░
███░█████░█████████░░█
███░░░▀█░██████████░░█
███░░░░░░████▀▀██▀░░░░
███░░░░░░███░░░░░░░░░░

██░▄▄▄▄░████▄▄██▄░░░░
████████████▀▀▀▀▀▀▀██
█████████████░█▀▀▀█░███
██████████▀▀░█▀░░░▀█░▀▀
███████▀░▄▄█░█░░░░░█░█▄
████▀░▄▄████░▀█░░░█▀░██
███░▄████▀▀░▄░▀█░█▀░▄░▀
█▀░███▀▀▀░░███░▀█▀░███░
▀░███▀░░░░░████▄░▄████░
░███▀░░░░░░░█████████░░
░███░░░░░░░░░███████░░░
███▀░██░░░░░░▀░▄▄▄░▀░░░
███░██████▄▄░▄█████▄░▄▄

██░████████░███████░█
▄████████████████████▄
████████▀▀░░░▀▀███████
███▀▀░░░░░▄▄▄░░░░▀▀▀██
██░▀▀▄▄░░░▀▀▀░░░▄▄▀▀██
██░▄▄░░▀▀▄▄░▄▄▀▀░░░░██
██░▀▀░░░░░░█░░░░░██░██
██░░░▄▄░░░░█░██░░░░░██
██░░░▀▀░░░░█░░░░░░░░██
██░░░░░▄▄░░█░░░░░██░██
██▄░░░░▀▀░░█░██░░░░░██
█████▄▄░░░░█░░░░▄▄████
█████████▄▄█▄▄████████

▀████████████████████▀




Rainbot
Daily Quests
Faucet
pseudo_geek
Newbie
*
Offline Offline

Activity: 21
Merit: 10


View Profile
October 14, 2020, 01:17:33 AM
 #12

How does vanity HDM (multi-sig) wallet generation works?

If you only know cosigner xpubs then where does the mnemonic come from?

If I feed this tool N xpubs, I will only get a N+1 of N+1 multi-sig setup, in which only the first address meets the vanity rules - did I get what you meant?

Also, are the pubkeys in a multi-sig setup sorted by default?

I think you may make this more clear in README, otherwise a noob like me will feel quite confused.
OgNasty
Donator
Legendary
*
Offline Offline

Activity: 4718
Merit: 4224


Leading Crypto Sports Betting & Casino Platform


View Profile WWW
October 14, 2020, 01:48:11 AM
 #13

Great to see the development being done in this area.  Kudos to you!

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!