Skip to content
Encode & Decode 6 min read

Base58 Encoding Explained: Bitcoin Addresses, IPFS & Why Ambiguous Characters Are Removed

Learn how Base58 encoding works, why Bitcoin, IPFS, and Flickr use it, how it differs from Base64 and Base32, and how to encode and decode Base58 in JavaScript.

ToolsVito Team

The Problem Base58 Solves

Base64 has six characters that cause problems when humans interact with encoded strings: 0 (zero) looks like O (capital o); I (capital i) looks like l (lowercase L); + and / have special meaning in URLs and aren't selected by double-click. Base58 removes all six — using an alphabet of 58 unambiguous characters — at the cost of being ~10% larger than Base64.

The Base58 Alphabet

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Excluded characters: 0 (zero), O (capital o), I (capital i), l (lowercase L), +, and /.

Bitcoin's Base58Check

Bitcoin extends Base58 with a checksum — Base58Check — to detect typos before sending funds to a wrong address. The format: version byte + payload + first 4 bytes of double SHA-256 hash = Base58 encoded. If you mistype a character, the checksum fails and the wallet rejects it. This is why Bitcoin addresses are the most visible use of Base58.

Other Base58 Applications

  • IPFS: Content identifiers (CIDs) in Base58, e.g., QmWv...Ba5J.
  • Flickr: Short photo IDs use Base58 to avoid confusion in URLs and printed links.
  • Short URLs: Some URL shorteners use Base58 to generate compact, unambiguous codes.

Base58 vs. Other Encodings

  • Base58 vs. Base64: Base58 is ~10% larger but fully human-safe. Use Base58 when strings are typed, spoken, or printed. Use Base64 for machine-to-machine.
  • Base58 vs. Base32: Base58 is more compact (58 chars vs. 32). Base32 is case-insensitive. Choose Base32 for voice/OCR; Base58 for typing/copying.
  • Base58 vs. hex: Base58 is ~40% more compact than hex. For the same binary data, hex is longest, then Base32, then Base58, then Base64.

Encode & Decode Base58 Instantly

Use ToolsVito's Base58 Encoder/Decoder to encode text to Base58 or decode it back. Supports Bitcoin-style encoding with checksum awareness. All processing in your browser.

Try it now — free, runs in your browser

Base58 Encode / Decode

Bitcoin-style encoding