*

Base58

By Satoshi Nakamoto for Bitcoin

Base58 is a numbering system that uses 58 different characters to represent data.

It includes numbers and most uppercase and lowercase letters, but excludes similar-looking characters such as 0 (zero), O (uppercase o), I (uppercase i), and l (lowercase L) to avoid confusion.

0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz

Base58 is beneficial for encoding large integers into shorter, more readable strings:

Binary
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Decimal
0
Hex
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Base58
1111111111111111
Action

Base58 was originally created by Satoshi Nakamoto for Bitcoin.

This is a snippet from the original Bitcoin source code:

// Copyright (c) 2009 Satoshi Nakamoto
// Distributed under the MIT/X11 software license, see the accompanying
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
 
//
// Why base-58 instead of standard base-64 encoding?
// - Don't want 0OIl characters that look the same in some fonts and
// could be used to create visually identical looking account numbers.
// - A string with non-alphanumeric characters is not as easily accepted as an account number.
// - E-mail usually won't line-break if there's no punctuation to break at.
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.

This feature makes it popular in applications that require manual data entry or visual verification.

Below is a table showing the most common base systems used in computing:

A list of common used base system
BaseNameCharacters
2Binary01
8Octal01234567
10Decimal0123456789
16Hexadecimal0123456789ABCDEF
58Base58123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz