Instead of having a Bitcoin address with random characters, Vanitygen allows you to generate addresses that contain meaningful strings. It does this by searching through thousands of random addresses every second and finding the ones that match your query. Longer strings require more processing power and take more time to find however so it’s useful to have a computer with beefy specs.

I use Vanitygen to generate cold storage paper wallets on an offline computer. Most people who have been in the Bitcoin community for a long time are probably quite familiar with Vanitygen. If you see an address that has a recognizable word in it, then chances are it was generated using Vanitygen or one of its forks. But did you know that Vanitygen can be used to generate vanity addresses for other cryptocurrencies too?

By default, Vanitygen will generate Bitcoin addresses that start with “1”. However, the program can be used to generate vanity addresses for coins whose addresses start with other characters by using the `-X` option followed by a decimal version number.

The following table provides examples of command line calls for Bitcoin and some popular (and not so popular) altcoins (the decimal version numbers are highlighted in bold):

Coin | Command line call |
---|---|

Bitcoin, Devcoin, Freicoin, Terracoin | $ ./vanitygen -X or 0 1$ ./vanitygen 1 |

Bitcoin (multi-signature) | $ ./vanitygen -X 5 3 |

Novacoin | $ ./vanitygen -X 8 4 |

Feathercoin | $ ./vanitygen -X or 14 6$ ./vanitygen -X 14 7 |

Anoncoin | $ ./vanitygen -X 23 A |

CHNCoin | $ ./vanitygen -X 28 C |

Digitalcoin, Dogecoin | $ ./vanitygen -X 30 D |

Franko | $ ./vanitygen -X 35 F |

Pesetacoin | $ ./vanitygen -X or 47 K$ ./vanitygen -X 47 L |

Litecoin | $ ./vanitygen -X 48 L |

Namecoin | $ ./vanitygen -X or 52 M$ ./vanitygen -X 52 N |

Peercoin | $ ./vanitygen -X 55 P |

Gridcoin | $ ./vanitygen -X or 62 R$ ./vanitygen -X 62 S |

Yacoin | $ ./vanitygen -X or 77 X$ ./vanitygen -X 77 Y |

BBQCoin | $ ./vanitygen -X 85 b |

Bitcoin (testnet) | $ ./vanitygen -X or 111 m$ ./vanitygen -X 111 n |

Ixcoin | $ ./vanitygen -X 138 x |

Some coins like Namecoin can start with two different letters (either “M” or “N”) while others like Litecoin can only start with one letter (“L”). For example, the following command line calls will generate Namecoin addresses starting with “NBoat” and “MyName” respectively:

$ ./vanitygen -X 52 NBoat

$ ./vanitygen -X 52 MyName

Some coins have other restrictions on letters. For example, BTC addresses can’t include the letters “l” (lowercase), “I”, and “O” (uppercase), LTC addresses only start from “LK” and end at “Li”, and DGC addresses must start with an uppercase “D” followed by either a digit or an uppercase letter.

The following table shows the leading symbols and address lengths for 160-bit hashes for each of the possible decimal version values:

Decimal version | Leading symbol | Address length |
---|---|---|

0 | 1 | <35 |

1 | Q-Z or a-k or m-o | 33 |

2 | o-z or 2 | 33 or 34 |

3 | 2 | 34 |

4 | 2 or 3 | 34 |

5, 6 | 3 | 34 |

7 | 3 or 4 | 34 |

8 | 4 | 34 |

9 | 4 or 5 | 34 |

10, 11 | 5 | 34 |

12 | 5 or 6 | 34 |

13 | 6 | 34 |

14 | 6 or 7 | 34 |

15, 16 | 7 | 34 |

17 | 7 or 8 | 34 |

18 | 8 | 34 |

19 | 8 or 9 | 34 |

20, 21 | 9 | 34 |

22 | 9 or A | 34 |

23 | A | 34 |

24 | A or B | 34 |

25, 26 | B | 34 |

27 | B or C | 34 |

28 | C | 34 |

29 | C or D | 34 |

30, 31 | D | 34 |

32 | D or E | 34 |

33 | E | 34 |

34 | E or F | 34 |

35, 36 | F | 34 |

37 | F or G | 34 |

38 | G | 34 |

39 | G or H | 34 |

40, 41 | H | 34 |

42 | H or J | 34 |

43 | J | 34 |

44 | J or K | 34 |

45, 46 | K | 34 |

47 | K or L | 34 |

48 | L | 34 |

49 | L or M | 34 |

50, 51 | M | 34 |

52 | M or N | 34 |

53 | N | 34 |

54 | N or P | 34 |

55, 56 | P | 34 |

57 | P or Q | 34 |

58 | Q | 34 |

59 | Q or R | 34 |

60, 61 | R | 34 |

62 | R or S | 34 |

63 | S | 34 |

64 | S or T | 34 |

65, 66 | T | 34 |

67 | T or U | 34 |

68 | U | 34 |

69 | U or V | 34 |

70, 71 | V | 34 |

72 | V or W | 34 |

73 | W | 34 |

74 | W or X | 34 |

75, 76 | X | 34 |

77 | X or Y | 34 |

78 | Y | 34 |

79 | Y or Z | 34 |

80, 81 | Z | 34 |

82 | Z or a | 34 |

83 | a | 34 |

84 | a or b | 34 |

85 | b | 34 |

86 | b or c | 34 |

87, 88 | c | 34 |

89 | c or d | 34 |

90 | d | 34 |

91 | d or e | 34 |

92, 93 | e | 34 |

94 | e or f | 34 |

95 | f | 34 |

96 | f or g | 34 |

97, 98 | g | 34 |

99 | g or h | 34 |

100 | h | 34 |

101 | h or i | 34 |

102, 103 | i | 34 |

104 | i or j | 34 |

105 | j | 34 |

106 | j or k | 34 |

107, 108 | k | 34 |

109 | k or m | 34 |

110 | m | 34 |

111 | m or n | 34 |

112, 113 | n | 34 |

114 | n or o | 34 |

115 | o | 34 |

116 | o or p | 34 |

117, 118 | p | 34 |

119 | p or q | 34 |

120 | q | 34 |

121 | q or r | 34 |

122, 123 | r | 34 |

124 | r or s | 34 |

125 | s | 34 |

126 | s or t | 34 |

127, 128 | t | 34 |

129 | t or u | 34 |

130 | u | 34 |

131 | u or v | 34 |

132, 133 | v | 34 |

134 | v or w | 34 |

135 | w | 34 |

136 | w or x | 34 |

137, 138 | x | 34 |

139 | x or y | 34 |

140 | y | 34 |

141 | y or z | 34 |

142, 143 | z | 34 |

144 | z or 2 | 34 or 35 |

145-255 | 2 | 35 |

In order to find out the version number of a particular cryptocurrency, you should first ensure that the encoding used for keys and addresses in that cryptocurrency is base 58. Then you need to convert an example address to decimal (base 10). There are plenty of converters that can do this and you can even write your own in a programming language like Perl or Python. Here is an example of an online converter.

Enter an example address such as `DDogepartyxxxxxxxxxxxxxxxxxxw1dfzr` (a Dogecoin address) in the top text box, select the “decimal” radio box, and then click on the “decrypt” button. The result of the conversion should be displayed on the left sidebar (click to expand):

As you can see, the first number “30” which I have highlighted is the version number that corresponds to the base 58 encoding used by Dogecoin addresses.

Alternatively, if you are comfortable with code then you can look through the coin’s source code for a file named “base58.h” in the “src” directory. At around line 280 on most coins, there should be an assignment statement for the constant `PUBKEY_ADDRESS`

. Its value should be the version number you need.