A vanity address is a personalized address you can use for Bitcoin or any alt-coin. One example is at the bottom of this site: 1BongftbUxAXA9MqMr489H5g2ejwVLeTRd
Feel free to donate Bitcoin to this address!
Getting started with Vanitygen
You can get Vanitygen for Windows or get the source from Github.
In Windows, unzip the file and open the folder the files were extracted to. Hold shift and right-click in the window to open a command prompt there and type:
vanitygen.exe 1<insert anything here>
vanitygen64.exe 1<insert anything here>
./vanitygen64 1<insert anything here>
If your GPU supports OpenCL, select the platform with oclvanitygen.exe -p 0
or -p 1
, then use oclvanitygen.exe
in your command.
Each character you add after the prefix adds exponentially the amount of time it takes to generate an address. Using a GPU can cut the time down drastically but at a certain point it doesn't matter. Another thing that can cut the time down is using the -i (case insensitive) option. Also, the first character used after the coin's prefix has an affect on how long it takes to generate and address.
A leading 1 is a 0 byte, or 8 bits. Each leading 1 after the first 1 in a Bitcoin address increases the difficulty by 2561 (28).
Bitcoin and the other alt-coins that use a Blockchain use Base58Check encoding for their addresses. The encoding includes a version byte, which determines the first character in the address. Base58 removes 0, O, I, and l to avoid confusion when manually copying an address and they are invalid characters for Bitcoin and alt-coins. Alt-coins also have other invalid characters.
An Nvidia GeForce GTX 500 Ti gets about 15MKeys/s. The table below shows how long (in rough numbers) it would take that GPU to have a 50% probability of generating an address with the following numbers of characters (including the Bitcoin prefix 1):
Some options worth mentioning:
-r: Use regex match
-i: Case insensitive
-k: Keep searching after a match
-N: Generate Namecoin address
-o: Write to a file: -o filename.txt
-f: Read a list of terms to search for: -f list.txt
Put a hyphen on a new line at the end of the file so it includes the last term.
Mining an alt-coin vanity address
Vanitygen will generate a vanity address for any alt-coin. Since each alt-coin has its own first character, you run the program the same way but with a few differences. Here are a few examples in various alt-coins:
vanitygen64.exe -X 48 LTC
vanitygen64.exe -X 55 -k PWn3d
vanitygen64.exe -X 71 -i Vertical
Each alt-coin has its own number. You can find that number by going to: http://darkgamex.ch:2751/q/decode_address/<ADDRESS>
http://darkgamex.ch:2751/q/decode_address/DBonem3gHCh6YqFqToFGkYjUgfq1q2oCE9 returns:
1e:49220b8ea64e55ea6c6e5488bbb228eb903f399b
What you want is before the colon and is in hexadecimal, which in this case is 1e. You'll need to convert it to decimal. The number you get is what you enter after the -X in Vanitygen, so for Dogecoin it's 30.
There is a list of address prefixes in case the decoder linked above ever goes down. The list leaves a bit of room for guessing but it's a good backup.
Many dig.. nvr find DMuchDigVeryMoonWow
Importing your private key
Now that you have a vanity address, you need to import the private key so you can use it. If you have an online wallet, such as at blockchain.info, you can go to the Import/Export tab and simply enter the key there. If you are using the Bitcoin-Qt client, click on Help, then Debug window, then click the Console tab.
If your wallet is encrypted, you will have to unlock it with the command below. After your passphrase you set the timeout, in this case 120. Don't leave your wallet unlocked for too long!
walletpassphrase yourpassphrase 120
Then import the private key (label is optional):
importprivkey yourprivatekey yourkeylabel
After you are done, you should lock your wallet right away instead of letting it timeout with walletlock
.
If you are running Linux and using the terminal, your passphrase will be in the bash history. You can avoid this by adding a space before the command:
(space)./bitcoind walletpassphrase yourpassphrase 120
Or use a bash variable:
read x
(input passphrase)
./bitcoind walletpassphrase "$x" 120