Base58 Encoder / Decoder (Bitcoin, IPFS)
Developer
Base58 is a binary-to-text encoding that drops the visually ambiguous characters 0 (zero), O (capital o), I (capital i) and l (lowercase L), plus + and / — so the result is compact and safe to copy by hand or put in a URL. It's the encoding behind Bitcoin addresses and WIF keys, IPFS CIDv0 hashes, and Solana keys. Paste UTF-8 text or raw hex and encode to Base58, or paste a Base58 string and decode it back to text or hex. Leading zero bytes map to leading '1' characters exactly as the Bitcoin reference implementation does, so binary payloads round-trip byte-for-byte. Choose the Bitcoin/IPFS alphabet (the common one), Ripple's reordered alphabet, or Flickr's short-URL alphabet. Everything runs locally — nothing is uploaded.
Plain Base58 (not Base58Check). A string only decodes with the same alphabet it was encoded in.
How to use
- Pick Encode or Decode.
- Choose the alphabet (Bitcoin is the default and most common) and whether your data is UTF-8 text or hex bytes.
- Type or paste into the input box and copy the result.
Frequently asked questions
- Is this Base58Check?
- No. This is plain Base58 — it does not add or verify the 4-byte double-SHA-256 checksum that Base58Check uses for Bitcoin addresses and WIF keys. Use it for raw Base58 payloads; if you need Base58Check, you must append/validate the checksum separately.
- Why does Base58 drop some characters?
- The alphabet omits 0, O, I and l because they're easily confused in many fonts, and + and / because they're not URL-safe. That's what makes a Base58 string safe to read aloud, transcribe, or paste into a URL without escaping.
- What's the difference between the alphabets?
- Bitcoin/IPFS uses '123...ABC...abc' order and is by far the most common. Ripple reorders the same 58 characters (so the same bytes give a different string). Flickr swaps the case ordering for short URLs. A string only decodes correctly with the alphabet it was encoded in.
- How are leading zero bytes handled?
- Each leading 0x00 byte becomes one leading '1' (the first alphabet character), matching the Bitcoin reference. That's why a 0x00000000 input encodes to '1111' and decodes back to four zero bytes — binary data survives a round trip exactly.
Related tools
Base64 to Hex Converter (and back)
Convert a Base64 string to hexadecimal bytes and hex back to Base64, with URL-safe support, in your browser.
Quoted-Printable Encoder & Decoder
Encode text to MIME Quoted-Printable (RFC 2045) or decode it back — handling =XX escapes, soft line breaks, and UTF-8 — entirely in your browser, with 76-character line wrapping on encode.
Hash Generator (SHA)
Generate SHA-1, SHA-256, SHA-384, and SHA-512 hashes from text.
URL Encoder / Decoder
Percent-encode text for URLs, or decode encoded URLs back to text.
Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 back to text, instantly.
JSON Formatter & Validator
Format, beautify, minify, and validate JSON right in your browser.