Skip to content

Base58 Encode

Encode text to Base58 (Bitcoin alphabet).

Input
Output

No result

About Base58 Encode

Base58 Encode turns text into the compact alphabet used by Bitcoin and by several other systems that need a short identifier without the characters people misread. The alphabet is fifty-eight symbols long: the digits and the Latin letters, with zero, upper case O, upper case I and lower case l removed because they look alike in most typefaces. The sample that loads with the page, the two words Hello world, comes back as JxF12TrwXzT5jvT with no separators at all.

The conversion treats the whole input as a single number. Each UTF-8 byte is folded in by multiplying the running value by 256 and adding the byte, and that integer is then divided by 58 repeatedly, each remainder picking one symbol from the alphabet. Leading zero bytes cannot be expressed by that arithmetic, so they are handled separately: each one becomes a leading 1, which is the zero symbol of this system. An empty input, having no bytes at all, still returns a single 1.

The output is a bare string with no padding and no line breaks. Nothing is appended as a check value, so this is the plain encoding of the bytes rather than the check-summed form that Bitcoin addresses use. The whole input is held as one integer, which is fine for the short identifiers this encoding is normally asked to produce but grows with the length of what is pasted in.

How to use Base58 Encode

  1. 1 Paste the text into the panel - the sample shows a short two word phrase.
  2. 2 Read the live output, which uses only the 58 characters of the Bitcoin alphabet.
  3. 3 Copy the string out for a short identifier, a key fragment or a test fixture.
  4. 4 Take the result to the companion decoder if you want to check that it round-trips.

Frequently asked questions

Which Base58 alphabet is used?

The Bitcoin ordering: digits first, then the upper case letters, then the lower case ones, with the four characters that are easily confused left out. Other Base58 dialects reuse the same fifty-eight symbols in a different order, so strings are not interchangeable between them.

Is a checksum added?

No. The output is the plain encoding of the bytes with nothing appended, so it will not detect a corrupted string and it does not match the longer check-summed form that Bitcoin addresses carry.

Why does an empty input return a 1?

Because the zero symbol of the alphabet is what remains when there is nothing to encode. The companion decoder reads that single character back as one zero byte, so the pair is not perfectly symmetrical for an empty input.

Can it encode a file?

No. Input arrives by pasting text and the whole value is accumulated into one integer, so there is no streaming and no file picker. Long inputs are processed in a single pass and the result has to be copied out of the panel.

Free, online, and private

Free to use

Base58 Encode is completely free. There is no account to create, no login, and no hidden charge or usage limit.

Runs online in your browser

It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.

Your data stays private

All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.

How Base58 Encode behaves in detail

These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.

Parameter Value
Input one text panel, recalculated live; the sample reads Hello world
Alphabet the Bitcoin alphabet of 58 symbols - digits, then upper case letters, then lower case letters - with the four easily confused characters zero, upper case O, upper case I and lower case l left out
Algorithm the UTF-8 bytes of the input are accumulated into one large integer by multiplying by 256 for each byte, and that integer is then divided by 58 repeatedly to produce the digits
Leading zeros each zero byte at the start of the input becomes a leading 1 in the output, because 1 is the zero symbol of this alphabet
Empty input an empty string returns a single 1 rather than an empty result
Output one continuous string drawn only from the 58 alphabet symbols, with no padding and no line breaks

Compiled from the implementation of this tool and checked against it by itoolnet.

What Base58 Encode does not do

Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.

  • The alphabet alone does not define Base58. This is the Bitcoin ordering, and other Base58 dialects reuse and reorder the same fifty-eight symbols, so a string produced here can decode to different bytes in a system that follows a different variant.
  • Nothing is appended as a check value. The output is the bare encoding of the bytes, so it will not detect corruption and it does not match the check-summed form that Bitcoin addresses use, where four extra bytes follow the payload.
  • The whole input is accumulated into a single integer, so the work grows with its length. There is no streaming, no progress indicator and no line-by-line handling, and the result can only be copied out of the panel - there is no way to hand it a file.

Tested and documented by itoolnet, the team that builds and maintains this site.

Share & embed this tool

Writing a guide or article? You are welcome to link to Base58 Encode with the snippet below. It is free, runs entirely in your browser, and needs no signup.