Skip to main content
CheckTown
Dev Tools

Base58 Encoding: Bitcoin Addresses, IPFS, and Beyond

Published 5 min read
In this article

What Is Base58 Encoding

Base58 is a binary-to-text encoding scheme designed to represent large integers as compact, human-readable strings. It was created by Satoshi Nakamoto for Bitcoin addresses and deliberately excludes characters that are easily confused with each other: the digit 0, uppercase O, lowercase l, and uppercase I.

The Base58 alphabet uses 58 characters: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. By removing visually ambiguous characters, Base58 reduces transcription errors when addresses are read aloud, printed, or manually typed — a critical design choice for financial systems where a single wrong character means lost funds.

How Base58 Encoding Works

CheckTown's Base58 Encoder converts between raw text or hexadecimal data and Base58-encoded strings.

  • Enter your text or hex data — the encoder converts your input to its Base58 representation
  • Switch between encode and decode modes to convert in either direction
  • All processing happens locally in your browser — no data is sent to any server
  • Copy the result with one click to use in your projects or applications

Try it free — no signup required

Encode with Base58 →

Where Base58 Is Used

Base58 encoding appears in several important systems where human readability and error prevention are priorities.

  • Bitcoin addresses — wallet addresses like 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa use Base58Check encoding with a built-in checksum
  • IPFS content identifiers — CIDv0 hashes (starting with Qm) use Base58btc encoding to represent content addresses
  • Flickr short URLs — Flickr pioneered Base58 for generating compact photo URLs that avoid ambiguous characters
  • Ripple addresses — the XRP Ledger uses Base58Check with a different alphabet variant for account addresses

Frequently Asked Questions

What is the difference between Base58 and Base64?

Base64 uses 64 characters (A-Z, a-z, 0-9, +, /) and is optimized for encoding binary data compactly. Base58 uses 58 characters and is optimized for human readability by removing ambiguous characters (0, O, l, I) and symbols (+, /) that cause issues in URLs. Base64 is more space-efficient; Base58 is more user-friendly.

What is Base58Check?

Base58Check adds a version byte prefix and a 4-byte checksum suffix to the data before Base58 encoding. The checksum is the first 4 bytes of a double SHA-256 hash. This allows wallets to detect typos in addresses before sending funds — if the checksum does not match, the address is invalid.

Is Base58 encoding reversible?

Yes, Base58 encoding is fully reversible. It is an encoding scheme, not encryption or hashing. Any Base58-encoded string can be decoded back to its original binary data without any loss of information.

Related Tools