🔣 Base58 Encode and Decode
By ToolNimba Editorial Team · Updated 2026-06-19
Type some text and press Encode.
This Base58 tool encodes text to Base58 and decodes Base58 back to readable text, both directions in one place. It uses the Bitcoin alphabet, the 58 characters left after removing the four look-alikes 0 (zero), O (capital o), I (capital i), and l (lowercase L), so the output is easy to read aloud and hard to mistype. It handles full UTF-8, so accented letters, emoji, and non-Latin scripts survive the round trip. Switch between Encode and Decode, copy the result with one click, or swap the output back into the input. Everything runs in your browser, so the text you paste never leaves your device.
What is the Base58 Encoder Decoder?
Base58 is a way of representing binary data using 58 printable characters. It starts from the 62 alphanumeric characters (0 to 9, A to Z, a to z) and then removes four that are easy to confuse with one another: the digit 0 and the letter O, and the letter I and the lowercase l. The result is an alphabet that a human can copy from a screen, write on paper, or read over the phone with far less chance of error. This is why Base58 was chosen for Bitcoin addresses and keys, and why it shows up in short identifiers and URLs.
Unlike Base32 and Base64, which slice the input into fixed groups of bits, Base58 treats the entire input as one very large number and converts it to base 58. The encoder reads all the bytes as a single big base-256 integer, then repeatedly divides by 58. Each remainder (a value from 0 to 57) is one Base58 digit, and reading those remainders from last to first gives the encoded string. Because 58 is not a power of two, there is no clean bit-to-character ratio: the output grows by roughly 37% over the input on average, a little smaller than Base32 but larger than Base64. There is also no padding character, which keeps the output compact and clean.
Leading zero bytes need special handling. Since a leading zero contributes nothing to the value of the big integer, it would simply vanish during the math. To keep the encoding fully reversible, every leading zero byte in the input is written as a single leading '1' character (1 is the first symbol in the alphabet). On decode, each leading '1' is turned back into a zero byte before the rest of the number is converted. Base58 is an encoding, not encryption: it uses no key and anyone can decode it, so never rely on it to hide secrets. This tool first converts your text to UTF-8 bytes, runs the big-integer base conversion, and reverses it on decode, so multibyte characters round-trip correctly.
When to use it
- Reading, generating, or sanity-checking the short, human-friendly identifiers used in crypto wallets and blockchain tooling.
- Producing compact, copy-safe IDs for URLs or invoices where look-alike characters like 0 and O would cause support tickets.
- Encoding short binary values into a string you can read aloud or write down without ambiguity.
- Teaching or learning how base conversion works, since Base58 is a clean worked example of converting between number bases.
How to use the Base58 Encoder Decoder
- Choose Encode to turn text into Base58, or Decode to turn Base58 back into text.
- Type or paste your content into the input box. The result updates as you type.
- Read the encoded or decoded result. Base58 output never uses padding characters.
- Press Copy to copy the result, or Swap input and output to feed the result back through.
Formula & method
Worked examples
Encode the word "Hi" (2 bytes).
- ASCII bytes: H = 72, i = 105.
- As one big number: 72 x 256 + 105 = 18537.
- 18537 % 58 = 35 (remainder), 18537 / 58 = 319.
- 319 % 58 = 29 (remainder), 319 / 58 = 5; then 5 % 58 = 5, quotient 0, so we stop.
- Map remainders read last to first: 5 = 6, 29 = W, 35 = c, giving 6Wc.
Result: Hi encodes to 6Wc
Encode the single letter "a" (1 byte).
- ASCII byte: a = 97.
- 97 % 58 = 39 (remainder), 97 / 58 = 1.
- 1 % 58 = 1 (remainder), 1 / 58 = 0, so we stop.
- Map remainders read last to first: 1 = 2, 39 = g, giving 2g.
Result: a encodes to 2g
Encode a value with a leading zero byte, the two bytes 0 and 97.
- The big number ignores the leading zero, so it is just 97, which encodes to 2g.
- The one leading zero byte must be preserved, so prepend one 1 character.
- Concatenate the leading 1 with 2g.
- On decode, the leading 1 is turned back into a zero byte.
Result: The bytes 0 and 97 encode to 12g
The Bitcoin Base58 alphabet (index to character)
| Index range | Characters |
|---|---|
| 0 to 8 | 1 2 3 4 5 6 7 8 9 |
| 9 to 16 | A B C D E F G H |
| 17 to 32 | J K L M N P Q R S T U V W X Y Z |
| 33 to 43 | a b c d e f g h i j k |
| 44 to 57 | m n o p q r s t u v w x y z |
Characters removed from the 62 alphanumerics and why
| Removed | Confused with |
|---|---|
| 0 (zero) | O (capital letter o) |
| O (capital o) | 0 (digit zero) |
| I (capital i) | l (lowercase L) |
| l (lowercase L) | I (capital i) |
Sample text and its Base58 encoding
| Input | Base58 output |
|---|---|
| a | 2g |
| Hi | 6Wc |
| hi | 8wr |
| Cat | PdgX |
| Hello | 9Ajdvzr |
| Bitcoin | 3WyEDWjcVB |
Common mistakes to avoid
- Confusing Base58 with Base64. They are different schemes. Base58 uses 58 characters, has no padding, and removes look-alike symbols, while Base64 uses 64 characters including +, /, and = padding. Feeding Base64 into a Base58 decoder fails because + and / are not in the Base58 alphabet.
- Using the digit 0, capital O, capital I, or lowercase l. These four characters are deliberately not in the Bitcoin Base58 alphabet. If your string contains any of them, it is not valid Base58 (or it uses a different variant such as Flickr or Ripple Base58, which order the alphabet differently).
- Assuming every Base58 variant uses the same order. This tool uses the original Bitcoin ordering (1 to 9, then A to Z, then a to z, with the four look-alikes removed). Flickr and Ripple use different orderings, so a string encoded with one variant will decode to different bytes with another.
- Treating Base58 as encryption. Base58 hides nothing. Anyone can decode it instantly, so never use it to protect passwords, tokens, or private data. Use real encryption when you need secrecy.
Glossary
- Base58
- An encoding that represents binary data using 58 characters, the alphanumerics minus the four look-alikes 0, O, I, and l, with no padding.
- Bitcoin alphabet
- The specific 58-character ordering (1 to 9, then A to Z, then a to z, minus 0, O, I, and l) introduced for Bitcoin addresses and keys.
- Base conversion
- Treating data as one large number and rewriting it in a different number base, which is how Base58 differs from bit-grouping schemes.
- Leading zero byte
- A zero-valued byte at the front of the input. It carries no numeric value, so Base58 encodes each one as a leading 1 character to stay reversible.
- Encoding
- A reversible transformation of data into another format. Unlike encryption it uses no key and provides no secrecy.
- UTF-8
- The dominant character encoding for text. It represents each character as one to four bytes, which Base58 then treats as one big number.
Frequently asked questions
What is Base58 encoding?
Base58 encoding represents binary data using 58 characters: the alphanumerics with the four look-alikes 0, O, I, and l removed. It treats the whole input as one big number and converts it to base 58. It is reversible and provides no encryption or secrecy.
How is Base58 different from Base64?
Base58 uses a smaller alphabet that removes look-alike characters and the symbols + and /, and it has no padding. Base64 uses 64 characters and is more compact. Base58 output is about 37% larger than the input, while Base64 is about 33% larger.
Why does Base58 leave out 0, O, I, and l?
Those four characters are easy to confuse on screen or paper: zero with capital o, and capital i with lowercase L. Removing them means a Base58 string can be copied, written down, or read aloud with far less risk of a transcription error.
How do I decode a Base58 string?
Paste the Base58 string, select Decode, and the original text appears instantly. The tool checks that every character is in the Bitcoin alphabet, restores any leading zero bytes from leading 1 characters, and returns the decoded UTF-8 text.
Is Base58 secure or encrypted?
No. Base58 is an encoding, not encryption. Anyone can decode it without a key, so it offers no security. Never use it to protect passwords or sensitive data. Use proper encryption when you need secrecy.
Does this tool handle emoji and accented characters?
Yes. It converts your text to UTF-8 bytes before encoding and decodes back through UTF-8, so characters like é, ü, Japanese text, and emoji round-trip correctly without corruption.