← HashitoSystem Home 日本語 Tools Blog
Input & settings
Result

About Base58

What is Base58?

Base58 encodes binary data using 58 characters. It takes the digits and letters but removes the easily confused 0 (zero), O (capital o), I (capital i) and l (lowercase L), plus the symbols (+ / = etc.) that break in URLs and plain text, leaving 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Unlike Base64, which splits data by fixed bit groups, Base58 treats the whole input as one large integer and converts it to base 58.

When is it used?

The classic examples are Bitcoin addresses and private keys (WIF), and IPFS content identifiers (CIDv0). It suits identifiers that people copy or read aloud where misreads must be avoided. Real Bitcoin addresses actually use Base58Check, which appends a 4-byte checksum (this tool does plain Base58).

How are leading zero bytes handled?

In Base58, each leading 0x00 byte becomes one leading "1" character in the output. This preserves leading zeros that would otherwise be lost when the data is treated as an integer, and this tool follows the same rule so the round trip (encode then decode) is exact.

Frequently asked questions (FAQ)

What is the difference between Base58 and Base64?

Both represent binary data as text. Base64 is more compact but includes the symbols + / = and easily confused characters. Base58 drops the ambiguous 0, O, I and l plus all symbols, keeping only 58 characters, so it is safe to read aloud, retype, or double-click select without breaking. It is used for Bitcoin addresses and IPFS CIDs.

Is my input sent to a server?

No. Encoding, decoding and downloading all run entirely in your browser. Your input is never sent to any server.

Is this the same alphabet as a Bitcoin address?

Yes. The character ordering matches the standard Base58 alphabet used by Bitcoin. Note this is plain Base58, not Base58Check, which appends a 4-byte checksum.