Encode bytes with Bitcoin-alphabet Base58 or Base58Check, or decode them back. Supports optional Base58Check version-byte validation.
Runs in your browser — your input is processed on this device and never uploaded.
Enter text or upload a file to encode. To decode, enter the encoded text.
Results appear here.
Base58 writes bytes with a 58-character alphabet that leaves out the characters people confuse: zero, capital O, capital I and lowercase l. Base58Check adds a version byte and a four-byte checksum, which is how Bitcoin addresses catch typing mistakes before money moves.
The alphabet is 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Satoshi Nakamoto chose it for Bitcoin, and a comment in the original Bitcoin source gives the reasons: 0, O, I and l look alike in some fonts, a string with no punctuation is more readily accepted as an account number, email will not break the line inside it, and a double-click selects the whole string as one word.
Base58Check adds protection against typing mistakes. Its last four bytes are the start of a double SHA-256 hash of the version byte and payload, so a mistyped character almost always fails the check instead of producing a different, valid value.
Base64 and Base32 are block-based standards from RFC 4648 and handle large data well. Base58 is not block-based: it converts the whole input as one large number, which is why this tool caps it at 1 MiB.
Bech32 and Bech32m is the newer Bitcoin address format, with a stronger checksum and a single-case alphabet. Multibase does not accept its Base58 form (prefix z), so decode the part after the z here instead.
Leading zero bytes become leading 1 characters, one per byte, so the bytes 00 00 01 encode as 112. That is why Bitcoin addresses with version byte 0 start with a 1.
Warning
A valid checksum catches accidental changes. It does not prove who made the value, and neither format encrypts anything.
Explore tools with similar capabilities.
encoding
Encode bytes as whole-value Base62, or decode Base62 text back to bytes. Choose either supported digit and letter ordering.
encoding
Encode bytes with a self-identifying multibase prefix, or detect the prefix and decode an existing multibase string.
encoding
Encode or decode basE91, a compact printable alphabet. Runs in your browser.
encoding
Encode text or uploaded files as Base64, or decode Base64 text and files back to binary. It all runs in your browser, so your input stays on the device.
Find similar tools by category or tag.