Author

Topic: vanitygen-hd - A Vanity HD/HDM Wallet Generator (Read 525 times)

donator
Activity: 4760
Merit: 4323
Leading Crypto Sports Betting & Casino Platform
Great to see the development being done in this area.  Kudos to you!
newbie
Activity: 21
Merit: 10
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.
legendary
Activity: 3094
Merit: 1069
DGbet.fun - Crypto Sportsbook
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.
legendary
Activity: 1382
Merit: 1122
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.
newbie
Activity: 3
Merit: 61
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.
newbie
Activity: 3
Merit: 61
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.
HCP
legendary
Activity: 2086
Merit: 4361
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
full member
Activity: 431
Merit: 105
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
Activity: 2086
Merit: 4361
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.

full member
Activity: 386
Merit: 100
i don't see Commands "out file" after generate address .
HCP
legendary
Activity: 2086
Merit: 4361
...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
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
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.
newbie
Activity: 3
Merit: 61
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'//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               BIP32 specifies the entropy length to be tween 128 and 256 bits and a multiple of 32 bits. (default: 256)
      -w, --workers            Numeber of parallel worker, use 0 as CPU num. (default: 0)
      -s, --co-signers   Co-signers YAML file, include m/45'/{1-n} public key array.
      -m, --co-members         Co-signers member num, use 0 as 'MAX(1,LEN(co_signers))'. (default: 0)
      -f, --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.
Jump to: