FormatterHQ

Base58 Encode

Encode text as Base58, the compact, copy-friendly encoding used by Bitcoin addresses, IPFS hashes and short URLs. Choose the Bitcoin, Flickr or Ripple alphabet.

Loading tool…
Ready.

How to use the Base58 Encode

  1. Type or paste into the Text box, or click Sample. You can also drop a text file on either box, or load one into the Base58 box with its Open file button.
  2. The Base58 box updates live as you type. It works both ways — edit the Base58 side to convert back, or click ⇄ Swap to exchange the sides.
  3. Adjust Alphabet in the options bar above the editors; the result refreshes immediately.
  4. Use Copy or Download on either box to take the result, or Clear to start again.

Base58 encode: readable, copy-safe output

Base58 was designed for identifiers that people read and copy. It uses 58 alphanumeric characters and deliberately leaves out 0 (zero), O (capital o), I (capital i) and l (lower-case L), which look alike in many fonts, as well as + and /, which break URLs and double-click selection. This tool will Base58 encode any text using the alphabet you choose.

How Base58 differs from Base64

Base64 works on fixed groups of bits. Base58 cannot, because 58 is not a power of two. Instead, the whole input is treated as one large number and repeatedly divided by 58, with each remainder selecting a character. Consequences:

  • There is no padding, and the output length varies slightly with the data.
  • Each leading zero byte is written as the first alphabet character (1 in the Bitcoin alphabet), so zeros are not lost.
  • Encoding is slower on large inputs, which is why Base58 is used for short values such as keys, hashes and addresses rather than files.

Example

Input: Hello World!

AlphabetOutput
Bitcoin / IPFS2NEpo7TZRRrLZSi2U
Flickr2nePN7syqqRkyrH2t
Ripplep4NFofTZRRiLZS5p7

The three alphabets

  • Bitcoin / IPFS — 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Used by Bitcoin addresses and private keys (WIF), IPFS CIDv0 hashes (Qm…), Solana addresses and many others.
  • Flickr — the same characters with lowercase letters before uppercase, used for Flickr short photo URLs.
  • Ripple — a reordered alphabet starting with r, which is why XRP Ledger addresses begin with “r”.

How long is Base58 output?

Each Base58 character carries about 5.86 bits, so encoded data is roughly 1.37 characters per byte — about the same as Base64 (1.33) and much shorter than hex (2.0). A 32-byte hash becomes 43 or 44 Base58 characters, compared with 64 in hex. That combination of compactness and readability is why so many blockchain and content-addressing systems adopted it.

Base58 vs Base58Check

Cryptocurrency addresses use Base58Check: a version byte is prepended and a 4-byte checksum (from a double SHA-256 hash) is appended before Base58 encoding, so typos are detected. This tool performs plain Base58 without the version byte or checksum. Never construct a wallet address by hand; use your wallet software.

Decode with Base58 Decode, or compare with Base32 and Base64. Encoding runs in your browser.

Base58 encoding in code

Most languages need a small library, because Base58 is not part of their standard library. With the Bitcoin alphabet, the five bytes of hello encode to Cn8eVZg:

# Python (pip install base58)
import base58
base58.b58encode(b"hello")          # b'Cn8eVZg'

// JavaScript (npm install bs58)
import bs58 from 'bs58';
bs58.encode(new TextEncoder().encode('hello'));   // 'Cn8eVZg'

When results differ between tools, check three things: the alphabet (a Flickr or Ripple encoder gives different characters for the same bytes), the text encoding of the input (this tool uses UTF-8), and whether the other tool silently added a Base58Check checksum. Leading zero bytes are another quick test: the bytes 00 00 01 must encode as 112, two 1 characters for the zeros followed by the value.

Frequently asked questions

Why does Base58 leave out 0, O, I and l?
These characters are easily confused in many fonts. Removing them reduces mistakes when people read, type or copy an identifier.
Is Base58 the same as a Bitcoin address?
Not exactly. Bitcoin legacy addresses use Base58Check, which adds a version byte and a checksum before encoding. This tool produces plain Base58 of your input.
Why do some outputs start with 1?
In the Bitcoin alphabet, 1 represents a zero byte. Every leading zero byte in the input becomes a leading 1, so the value decodes back exactly.
Does Base58 use padding?
No. Unlike Base64 and Base32, Base58 has no padding character; the length simply depends on the value.

Last updated October 3, 2026

Related tools