Skip to main content

Base58 Encoder/Decoder

Encode text to Base58 or decode Base58 strings back to plain text using the Bitcoin alphabet (UTF-8 aware). Handles leading zero bytes and validates Base58 characters automatically.

Input

Output

Result
Was this helpful?

Guides

Base58 is a binary-to-text encoding scheme popularized by Bitcoin that represents arbitrary bytes using 58 alphanumeric characters — the full set of digits and letters minus 0 (zero), O (capital O), I (capital I), and l (lowercase L). Those four characters are dropped specifically because they look alike in many fonts, so a Base58 string can be read, typed, and copied by hand with much less risk of a mistyped or misread character than Base64 or plain hexadecimal. Unlike Base64, Base58 also avoids punctuation like +, /, and =, so the output is always a single unbroken alphanumeric token — convenient for URLs, filenames, and command-line arguments.

What it's used for

  • Bitcoin and other cryptocurrency addresses — Bitcoin wallet addresses, private keys (WIF format), and many altcoin addresses are Base58-encoded (with an additional checksum step known as Base58Check) so users can transcribe them without ambiguity.
  • IPFS content identifiers — legacy IPFS CIDs (v0) are Base58-encoded multihashes, making file hashes shareable as short, unambiguous strings.
  • Short URL and ID generators — services that mint compact, human-friendly, case-sensitive identifiers (short links, invite codes) often choose Base58 for the same readability guarantees that made it popular in Bitcoin.
  • QR codes and printed materials — anywhere a string might be read aloud, handwritten, or OCR'd, Base58's ambiguity-free alphabet reduces transcription errors compared to Base64.

How to use this tool

  1. Paste text into the input box.
  2. Choose Encode to convert plain text to Base58, or Decode to convert a Base58 string back to text.
  3. The result appears in the output box automatically — no button click needed. Use the copy or download icon to grab it.

Encoding accepts any UTF-8 text (the text is UTF-8 encoded before being Base58-encoded, so emoji and non-Latin scripts round-trip correctly). The conversion treats the input bytes as one large number and repeatedly divides it by 58, so it works correctly at any length — there's no practical size limit imposed by the algorithm itself. Leading zero bytes are a special case: each 0x00 byte at the start of the input becomes a leading 1 character in the output (and is restored as a 0x00 byte on decode), since a leading zero carries no numeric weight and would otherwise be lost. Decoding expects a string made up only of valid Base58 characters; if the input contains 0, O, I, l, or any other character outside the Base58 alphabet, or if the decoded bytes aren't valid UTF-8 text, the tool reports a clear error instead of producing garbage output.

FAQ

Why is my Base58 output longer than the original text? Base58 needs roughly 1.37 output characters for every input byte, since log(256)/log(58) ≈ 1.37 — slightly less efficient than Base64's ~1.33 ratio, but still far more compact than encoding bytes as decimal or binary digits.

Is this the same alphabet Bitcoin uses? Yes — this tool uses the standard Bitcoin Base58 alphabet (123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz). Note this tool performs plain Base58 encoding/decoding of text; it does not add the extra version byte and SHA-256d checksum that Base58Check uses for real Bitcoin addresses.

Why can't I use the letter "0" or "O" in decode input? Those characters — along with I and l — are deliberately excluded from the Base58 alphabet because they're easy to confuse with each other or with 1/o in many fonts. If your input contains them, decoding fails with a descriptive error rather than silently producing wrong output.

Is Base58 encryption? No — Base58 is not encryption or compression. It's purely a representation format; anyone can decode it back to the original data instantly. Don't use it to protect sensitive information.

Privacy

All encoding and decoding happens entirely in your browser — your text never leaves your device or gets sent to a server.

base58encodedecodeencodingbitcoindeveloper

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.