Base58 is a binary-to-text encoding introduced by Bitcoin to represent addresses and keys in a form that humans can copy without errors. It uses 58 symbols, deliberately dropping the four characters that look alike in many fonts. This tool encodes UTF-8 text to Bitcoin Base58 and decodes it back, entirely in your browser.
How it works
Unlike Base64, Base58 does not work on fixed bit groups. It treats the entire input as one large integer and repeatedly divides by 58:
- The input bytes are interpreted as a big-endian number.
- That number is divided by 58 over and over; each remainder selects one symbol from the alphabet
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. - The symbols come out least-significant first, so they are reversed for the final string.
- Each leading zero byte in the input is encoded separately as a leading
1, because the numeric conversion alone would lose it.
Decoding runs the same process in reverse: characters are accumulated into a big integer, the integer is rendered back into bytes, and each leading 1 is restored as a zero byte.
Tips and example
Encoding the text Hello World! produces 2NEpo7TZRRrLZSi2U. Because Base58 omits 0, O, I, and l, a string that contains any of those characters is invalid and the decoder will reject it with the offending character named. Remember that a real Bitcoin address is Base58Check — it carries an extra four-byte checksum — so a bare Base58 string from this tool is the building block, not a complete address.