Base58 Encoder / Decoder (Bitcoin, IPFS)
Encode and decode Base58 with the Bitcoin, Ripple or Flickr alphabet — from UTF-8 text or raw hex, with correct leading-zero handling.
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.
About this tool
ShowHide
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.
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
Ascii85 / Base85 Encoder & Decoder
Encode and decode Ascii85 (Base85) from UTF-8 text or hex bytes — Adobe/PDF variant with <~ ~> delimiters, or the plain variant. All in your browser.
Developer
CBOR Decoder (Diagnostic Notation)
Decode CBOR (RFC 8949) from hex or base64 into readable diagnostic notation — including tags, floats and indefinite-length items. All in your browser.
Developer
ASCII Code Table
Browse and search the 256-row ASCII / extended-ASCII table — decimal, hex, octal, binary, and the named control characters.
Developer
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.
Developer
CRC-32 Calculator (CRC-32 & CRC-32C)
Compute the CRC-32 (IEEE 802.3, used by zip/gzip/PNG) or CRC-32C (Castagnoli) checksum of text or hex bytes, in hex and unsigned decimal.
Developer
Bitwise Calculator
AND, OR, XOR, NOT and bit shifts on two integers — shown in binary, hex, unsigned and signed decimal, with selectable 8, 16, 32 or 64-bit width.
Developer