1 min read

Base58 is an encoding scheme with an alphabet of 58 characters, including upper and lowercase letters A-Z and the digits 1-9. Base58 excludes zero, uppercase ‘O’, uppercase ‘I’, and lowercase ‘l’, in order to avoid reader confusion.

A variant of Base58 called Base58Check is used to represent legacy Bitcoin addresses and private keys in WIF format. Base58Check is identical to Base58, with the addition of a 4-byte checksum and a version prefix. The version prefix indicates what data is represented. Pay-to-Public-Key-Hash (P2PKH) addresses have the prefix ‘1’, while P2SH addresses have a prefix of ‘3’ and private keys in WIF format carry a ‘5’ prefix.