Base58 Encoder / Decoder (Bitcoin, IPFS)
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
Ascii85 / Base85 Encoder & Decoder
Encode and decode Ascii85 (Base85) from UTF-8 text or hex bytes — Adobe/PDF variant with <~ ~> delimiters and the z zero-group shortcut, or the plain variant — entirely in your browser.
CBOR Decoder (Diagnostic Notation)
Decode CBOR (RFC 8949) from hex or base64 into readable diagnostic notation — integers, byte and text strings, arrays, maps, tags, floats, simple values, and indefinite-length items — entirely in your browser.
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.
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, shown in lowercase hex, uppercase hex, and unsigned decimal — in your browser.
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.
Hex Dump Viewer
Inspect text or a small file as offset + hex bytes + printable ASCII, like `xxd` or `hexdump -C`.