The Excluded Characters of Base58
The Excluded Characters of Base58
The defining feature of Base58 is what it leaves out. By carefully pruning the standard alphanumeric character set, Bitcoin eliminates the most common sources of human transcription error.
1. Visual Ambiguity (The "lookalikes")
In many fonts, certain characters are indistinguishable. To prevent users from sending money to the wrong address because they misread a printed key, Satoshi removed:
-
0 (Number Zero)
-
O (Capital O)
-
I (Capital I)
-
l (Lowercase L)
If you see a character that looks like a vertical line in a Bitcoin address, you can be 100% sure it is a 1, because I and l don't exist. If you see a circle, it is a 9 or an 8, because 0 and O don't exist.
2. Non-Alphanumeric Symbols
Base64 uses + and /. In many contexts, these symbols cause issues:
-
Line Breaks: Software might think
/is a folder path and break the string. -
Encodings: Some systems might convert
+to a space. Base58 uses ONLY letters and numbers, ensuring it is "Safe" for every computer system on Earth.
3. The Alphabet
The resulting 58-character alphabet is:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Notice the missing 0, O, I, and l.
4. The "Check" Logic
While the alphabet itself reduces mistakes, it is the combination of Base58 + Checksum that makes it a "Financial Grade" encoding.
-
The alphabet prevents you from misreading the string.
-
The checksum prevents you from mistyping the string.
| Character Pair | Problem | Result in Base58 |
|---|---|---|
| 0 vs O | Both look like circles | Both removed |
| I vs l vs 1 | All look like lines | Only 1 remains |
| + and / | Break URLs/Paths | Both removed |
In the next section, we will analyze the Base58 Arithmetic used to convert numbers.
TeachMeBitcoin is an ad-free, open-source educational repository curated by a passionate team of Bitcoin researchers and educators for public benefit. If you found our articles helpful, please consider supporting our hosting and ongoing content updates with a clean donation: