"tools" in Base58
- Input
- tools
- Expected output
- E8usLYJ
7 characters for 5 bytes, 40% more: on short inputs the real overhead swings further from the 37% average, because there are not enough bytes for the division by 58 to converge.
difference base58 base64 when to use
Base64 was born from a simple alphabet: take the 62 alphanumeric characters and add two symbols, + and /, to close out at 64. Base58 goes the opposite way: it starts from the same 62 characters and removes four, 0, O, I and l, to land on 58. That four-symbol difference looks small, but it changes the overhead, the readability and even the encoding speed.
7 characters for 5 bytes, 40% more: on short inputs the real overhead swings further from the 37% average, because there are not enough bytes for the division by 58 to converge.
8 characters for 5 bytes, 60% more: the "=" padding rounds the output up to a multiple of 4, and on small blocks that rounding weighs more than the 33% asymptotic average.
On a larger block that is a multiple of 3, each scheme's overhead settles close to its theoretical value: 4/3 for Base64, log 256 over log 58 for Base58.
Base58 drops 0 (zero), O (uppercase o), l (lowercase L) and I (uppercase i) because they look alike in common fonts and are hard to tell apart when read aloud. That reduces transcription errors, which is critical for wallet addresses, where one swapped character can mean permanently lost funds.
On average yes, around 37% against 33% overhead, but not on every input: with few bytes, Base64's "=" padding can weigh more than Base58's division by 58, as happens when encoding the word "tools" (60% against 40% overhead). The 37/33% rule is only reliable on larger blocks.
Because Base64 processes the input in fixed 3-byte groups with bit shifting, a simple linear operation. Base58 has no power of 2 as its base, so the algorithm treats the whole input as one large number and repeatedly divides it by 58, a cost that grows faster as the input grows. For short text the difference is not noticeable.
Yes, and it is a real advantage: Base58 never produces +, / or =, so it needs no percent-encoding and no separate "URL-safe" variant, unlike standard Base64. Base64 does have a URL-safe version (swapping + and / for - and _), but Base58 is born without those problematic characters in the first place.
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzEverything is computed in your browser, including the SHA-256 behind the checksum. No key or address leaves this device.