Two different encodings are used for Bitcoin addresses.
Native segwit addresses are encoded using the Bech32(m) encoding. Bech32 uses all 32 symbols 023456789acdefghjklmnpqrstuvwxyz
to encode data. On the mainnet, Bitcoin native segwit addresses start with the human-readable part bc
and the separator 1
. The prefix is different on test networks.
All previous addresses use Base58. Base58 uses the numbers 1 through 9 (excluding 0) and all letters of the English alphabet in upper and lower case, excluding capital O, capital I, and lower case l, because 0
And O
as well as I
And l
are easy to confuse in many fonts. This leaves the 58 symbols: _123456789ABCDEFGH_JKLMN_PQRSTUVWXYZabcdefghijk_mnopqrstuvwxyz
. (Omissions are included in the list of symbols as underlines in case the letters of the text are difficult to parse outside the context of the command.)