5️⃣ Base58 Encoder
Encode and decode Base58 (Bitcoin style). Uses a 58-character alphabet that drops 0, O, I, and l to avoid ambiguity.
About Base58
Base58 is a binary-to-text encoding scheme popularized by Bitcoin. It uses a 58-character alphabet that omits characters which look similar in some fonts: 0 (zero), O (capital o), I (capital i), and l (lowercase L). This makes the encoded output safer to read and type manually. Unlike Base64, Base58 has no padding and no special characters, so it's well-suited for URLs, IDs, and short identifiers. This tool runs entirely in your browser — nothing is uploaded.
How it works
- Encode — The input bytes are interpreted as a big-endian integer and repeatedly divided by 58. The remainders are mapped to characters in the alphabet, and leading zero bytes become leading '1' characters.
- Decode — Each character is converted to its index, multiplied into a running total, and the result is converted back to bytes. Leading '1' characters become leading zero bytes.
- The alphabet is
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz(no 0, O, I, or l). - Encoding operates on raw bytes, so UTF-8 multibyte characters produce longer Base58 output.
Use cases
- Encoding Bitcoin addresses, public keys, and other blockchain identifiers.
- Producing compact, human-friendly IDs for short links and IPFS content IDs.
- Representing binary data in URLs without needing URL-unsafe characters.
- Displaying checksummed identifiers that users may type manually.
Frequently asked questions
Why does Base58 drop 0, O, I, and l? These characters are easily confused with each other or with 1 when read in many fonts, which causes transcription errors. Removing them makes Base58 safer to type by hand.
Is Base58 more compact than Base64? No, Base58 output is slightly longer than Base64 for the same input. Base58 trades compactness for readability.
Why are leading '1' characters special? Each leading zero byte in the input is preserved as a '1' in the output, so encoding and decoding round-trip correctly even when the input starts with zero bytes.
Does this tool upload my text? No. All encoding and decoding happens locally in your browser.