Base58 Encode / Decode

Encode text or bytes to base58, or decode a base58 string back to text. Pick one of three alphabets — Bitcoin, Flickr, or Ripple. UTF-8 safe on encode, whitespace-tolerant on decode, positional error reporting. Everything happens in your browser — nothing is uploaded, no sign-in, no tracking.

Choose encode or decode

Bitcoin and Ripple use the same character set but the rule for leading-zero bytes differs in Base58Check. For raw encode / decode (no checksum) the two produce identical output.

In decode mode whitespace is ignored and lowercase input is accepted, so you can paste values straight out of a config file or chat message.

Example inputs — click any chip to load it
How base58 works
  • Base58 represents numbers in base 58 using an alphabet of 58 printable ASCII characters. Every output character carries about 5.86 bits of data.
  • The most common alphabet (Bitcoin) is 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz — the same as Base64 with the four visually ambiguous characters 0, O, I, l deliberately removed. Flickr uses the same 58 characters in a different order (lowercase first), and Ripple matches Bitcoin for raw encode / decode.
  • Leading 0x00 bytes in the input become leading 1 characters (the first char of the alphabet) in the output, so a Bitcoin address can be losslessly round-tripped back to bytes including its version byte.
  • Bitcoin’s Base58Check variant adds a 4-byte double-SHA-256 checksum at the end and a 1-byte version prefix. This page does not add or verify the checksum — it does raw base58. For full Base58Check encoding / verification use a Bitcoin-specific library.
  • Errors are reported with the position of the bad character (whitespace stripped first). The encoder runs entirely on a small client-side script — nothing is uploaded.