When you create a crypto wallet, you get an address. This address – let’s say a Bitcoin address – contains 34 characters long alphanumeric characters with capital letters, small letters and numbers, which represents a crypto wallet. In general, nobody will remember which wallet address was created. Vanity addresses is one way of adding some recognizable characters to that address. Instead of just having random numbers in an address, this would be 1acceptbitcoin as an example so that people can recognize it more easily and make it human readable. It is therefore an address that can be found in relation to the actual public key.
First of all, it should be noted that Bitcoin addresses always start with a ‘1’ or ‘3’. If you wanted to create a public key address for “1bitcoinaccept” and another 14-21 random characters and numbers, each character in this sequence has a certain probability that will be displayed. If you want to get the first ‘a’ for “1bitcoinaccept”, the BASE58 coding of an address contains 58 characters:
If you generate an average of 58 different private keys in a row, one of them will probably start with ‘b’ because there is a 1 in 58 chance among the 58 characters that this letter is an ‘b’. There is also a 1 in 58 chance that the second letter will be given a ‘i’. The probability of receiving ‘bi’ as the first character is therefore necessary to generate 58 times 58 keys (i.e. 582 keys) before one is found whose address by chance begins with ‘bi’. For “bit” it would be 583. Each additional letter in a vanity address increases the difficulty of finding a desired pattern. For “bitcoinaccept” it is therefore necessary to generate 5813 private keys before a random chance occurs, which on average starts with “1bitcoinaccept”.
Vanity addresses are searched through trial and error. The generation of vanity addresses requires a brute force algorithm, i.e., if there is no match with the desired sequence of letters and numbers, the algorithm generates a new random private key and follows the procedure again. The difficulty of generating a desired vanity address lies in the number of addresses that are needed to be tested on average.
The following figure shows how long a common vanity generator algorithm like Vanitygen (case insensitive) on an “AMD Ryzen 7 2700X processor”, ie a laptop or PC commonly used today, takes until a desired vanity address can be found on average.
Digit/Char |
Vanity |
Mkey/s (Million key per second) |
Estimated time with a 50% probability |
8 |
1BitcoinA |
2.28 |
43.4 days |
9 |
1BitcoinAc |
2.28 |
3.5 years |
10 |
1BitcoinAcc |
2.28 |
104.6 years |
11 |
1BitcoinAcce |
2.28 |
2972.7 years |
12 |
1BitcoinAccep |
2.28 |
90469.7 years |
13 |
1BitcoinAccept |
2.28 |
9.313205e+006 years |
Given that the difficulty increases exponentially the longer your vanity is, so does the average time required to find that vanity. This could take hours, days or even years. The time requirement is exponential in the number of characters you’re trying to find. This makes finding vanity addresses a very computationally intensive problem. Searching with a laptop would therefore take an astronomical amount of time. For this reason, it is recommended to run a vanity generator on a GPU. BANITY uses specially upgraded hardware and software. This speeds up the search considerably.
Only the private key is responsible for security. The character of your public address doesn’t matters.