Overview
Encode text into Base58 or decode a Base58 string back into text, using the standard Bitcoin Base58 alphabet ("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") - 58 characters that deliberately exclude the digit 0, capital O, capital I, and lowercase l, since those look alike in many fonts and are easy to mistype or misread. This is plain Base58 conversion only - there is no Base58Check checksum or version byte added, so it won't match a Bitcoin address or similar checksummed identifier directly. The underlying math is done with arbitrary-precision integers rather than ordinary JavaScript numbers, so long inputs convert exactly instead of losing precision, and a leading zero byte in the input correctly becomes a leading "1" character in the output (and vice versa on decode). Useful for working with Base58-encoded identifiers, IPFS content hashes, or any system that specifically uses this alphabet instead of Base64. Runs entirely client-side.
Best for: Encoding or decoding a Base58 identifier without adding a Bitcoin-style checksum
How to use this tool
- Choose a direction. Encode text to Base58, or decode a Base58 string back to text.
- Enter your input. Any text to encode, or a Base58 string to decode.
- See the result instantly. The output updates live as you type, computed with exact big-integer arithmetic.
- Copy the result. The encoded or decoded value is ready to copy with one click.
Frequently asked questions
They're visually ambiguous in many fonts - a zero can look like a capital O, and a capital I can look like a lowercase l - so the standard Bitcoin Base58 alphabet leaves them out entirely to make encoded strings less error-prone to read, type, or transcribe by hand.
No - this is plain Base58 encoding/decoding only, with no checksum or version byte appended. A real Bitcoin address adds a 4-byte checksum on top of Base58 (Base58Check), so this tool's output won't match one directly even though both use the same 58-character alphabet.
Each leading zero byte (0x00) in the input maps to exactly one leading "1" character in the Base58 output, and decoding reverses this correctly - the arithmetic conversion only applies to the non-zero remainder, so leading zeros round-trip exactly instead of being dropped.