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.
Base58 is beneficial for encoding large integers into shorter, more readable strings:
The original Bitcoin source explains the choice:
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:
| Base | Name | Characters |
|---|---|---|
| 2 | Binary | 01 |
| 8 | Octal | 01234567 |
| 10 | Decimal | 0123456789 |
| 16 | Hexadecimal | 0123456789ABCDEF |
| 58 | Base58 | 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz |