Base58 Decode

Decode a Base58 string back to text, using the Bitcoin-style alphabet.

Base58
Text
Runs locally in your browser

About the Base58 Decode

This tool decodes Base58 to text, interpreting the resulting bytes as UTF-8. Leading 1 characters are converted back to leading zero bytes, matching the Bitcoin encoding. Any character outside the 58-character alphabet, including the excluded 0, O, I and l, is reported as an error so a mistyped string is caught rather than silently mis-decoded.

One detail catches people decoding blockchain data. A Bitcoin address or a WIF private key is Base58Check, which wraps the payload with a one-byte version prefix and a four-byte SHA-256 checksum before encoding. This tool performs the plain Base58 step only, so you get all of those bytes back rather than just the hash, and it does not verify the checksum. Swap one valid character for another, say b for c, and the string still decodes, just to different bytes that only a Base58Check verifier would reject.

That also explains why an address decodes to raw bytes and not readable text: an address was never text to begin with. For arbitrary text you encoded with the Base58 Encode tool the original comes back exactly, because leading 1 characters are restored to zero bytes before the UTF-8 step. When the payload is binary, Hex Decode and Binary to Text offer more useful views of the same bytes.

How to use

  1. Paste the Base58 string.
  2. Read the decoded text.
  3. An error means the string contains a character outside the alphabet.

Common questions

Why does my Bitcoin address decode to gibberish?
An address is binary data (version, hash, checksum), not text. It decodes to bytes, which are not meant to be read as characters.
It rejects a character. Which ones are invalid?
0 (zero), O (capital o), I (capital i) and l (lowercase L) are not in the Base58 alphabet.
Is case significant?
Yes. Unlike Base32, Base58 uses both cases and they are distinct.