Base58 Encoder / Decoder

Encode and decode Base58 with the Bitcoin, Flickr or Ripple alphabet for text and files up to 1 MiB. Runs locally in your browser, nothing is uploaded.

Your inputs and files stay in your browser

Type text to encode, or paste Base58 to decode — or drop a file below.

Drag and drop a file here

If a file is selected, it will be used instead of the text input.

Decode options

The encoded or decoded result appears here.

On this page

Encode text or small files to Base58 and decode them back using the Bitcoin, Flickr or Ripple alphabet. The conversion runs in your browser via WebAssembly compiled from Rust, so the keys and identifiers you paste stay on your device.

Detailed Functionality

Base58 uses 58 letters and digits and leaves out the look-alikes 0, O, I and l as well as + and /, so encoded values are easy to read, retype and select with a double click. It is the encoding behind Bitcoin addresses, IPFS CIDv0 hashes and Solana keys. Three alphabets are available: Bitcoin (the most common), Flickr (lowercase letters before uppercase, used in short links) and Ripple (XRP Ledger).

Unlike Base64, Base58 treats the whole input as one big number, so there is no padding and each leading zero byte becomes a leading 1 in the Bitcoin alphabet. This math grows quadratically with input size, which is why encoding is limited to 1 MiB and decoding to 2,000,000 characters; for larger files use Base64 or Hex.

This is plain Base58: the tool neither adds nor verifies the 4-byte Base58Check checksum of Bitcoin addresses and WIF keys, so decoding an address returns the version byte, payload and checksum together. Bytes that are not valid text in the selected charset can still be saved with Download.

Practical Examples

Bitcoin alphabet: Hello World! encodes to 2NEpo7TZRRrLZSi2U, and decoding that string returns Hello World!.

Other alphabets: the same text gives 2nePN7syqqRkyrH2t with Flickr and p4NFofTZRRiLZS5p7 with Ripple.

Invalid character: 2NEpo0TZRRrLZSi2U (zero instead of 7) is rejected, because 0 is not part of any Base58 alphabet.

Bitcoin address: decoding 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa gives 25 raw bytes (version, hash and checksum); the tool reports that they are not text and Download saves them.

How to Use This Tool

  1. Enter text or choose a file

    Type or paste text into Input (text), or drop a file of up to 1 MiB onto the page or click Choose file.

  2. Choose the alphabet

    Select the Alphabet: Bitcoin (Base58), Flickr or Ripple. Change the Text charset only if your text is not UTF-8.

  3. Encode or decode

    Click Encode to get Base58 or Decode to restore text or bytes. Decode with the same alphabet that was used to encode.

  4. Copy or download

    Click Copy to take the result to the clipboard or Download to save it; binary results can only be downloaded.

Tips and Best Practices

  • Base58 output is about 37% longer than the input, a bit longer than Base64, in exchange for unambiguous characters.
  • Leading 1 characters in a Bitcoin-alphabet string stand for leading zero bytes; removing them changes the decoded value.
  • A Ripple string decoded with the Bitcoin alphabet gives different bytes or an error: 2NEpo7TZRRrLZSi2U with Ripple selected decodes to 13 bytes of binary instead of Hello World!.
  • Spaces and line breaks in the input are skipped while Allow whitespace/newlines is on, handy for keys split across lines.
  • For files over 1 MiB, use Base64 or Hex: they run in linear time.