₿

Base58 Encoder and Decoder

Convert to and from Base58 with three alphabets and an optional checksum
Base58 📂 Encode 👤 ToolWorld 🏷️ v1.3.0
Loading...
InputText or hex to encode, or a string to decode

Base58Check relies on the browser Web Crypto interface and only works on HTTPS pages.

ResultCopy it or feed it back

Enter content, then press Run

Length and alphabet

Enter content, then press Run

How to Use

📖 Overview


Base58 is the encoding behind Bitcoin addresses. It starts from the 64 alphanumeric characters and drops four that people routinely confuse: the digit zero, capital O, capital I and lowercase l. It also drops the plus and the slash, leaving 58 symbols, so nobody copying an address by hand mistakes a zero for the letter O or a lowercase l for the digit one. This tool offers three alphabets. The Bitcoin set is the familiar one, ordered digits then uppercase then lowercase. The Ripple set shuffles that order and is used for XRP addresses. The Flickr set puts lowercase first and shows up in short URLs. Encoding and decoding both work, and the arithmetic underneath is done by repeatedly dividing a byte array by 58 rather than by calling BigInt or pulling in a library, so long inputs keep full precision. Base58Check is available as an option: it appends a four-byte checksum when encoding and verifies then strips it when decoding. The trade-off against Base64 is length, since 58 symbols carry slightly less than six bits each, but the gain is a string humans can transcribe without errors.

✨ Features


  • Switch between encoding and decoding, and feed the result back into the input with one click to verify by reversing it
  • Three alphabets: the Bitcoin set, the Ripple set and the Flickr set, each used by different systems
  • A Base58Check toggle that appends a double SHA-256 checksum when encoding and verifies and strips it when decoding
  • Big-number arithmetic done by repeated byte-array division, with no BigInt and no third-party library, so long inputs keep precision
  • Input accepted as plain text or as a hexadecimal string, with Chinese text handled as UTF-8
  • A statistics panel reporting byte count, character count, expansion ratio and the alphabet currently in use

🚀 How to use


  1. Type the plain text or hex string to encode, or the Base58 string to decode
  2. Choose the direction: encode or decode
  3. Pick the alphabet. The three sets are mutually incompatible, so it must match whoever produced the string
  4. Tick Base58Check when you want a checksum appended or verified
  5. Press Run, then use the swap button to feed the result back and run it the other way

⚠️ Notes


  • The alphabet must match: the Bitcoin, Ripple and Flickr sets order their characters differently, and decoding with the wrong one produces meaningless output rather than an error
  • The checksum needs SHA-256: Base58Check relies on the browser Web Crypto interface, which is only available on HTTPS pages. Elsewhere the tool says so instead of failing silently
  • Leading zeros are preserved: zero bytes at the front encode as the first character of the alphabet and are restored on decoding. That is correct Base58 behaviour, not a bug
  • This is not a wallet tool: it only converts between encodings. It generates no keys and queries no balance, so do not paste private keys or seed phrases here
  • Empty input gives no result: a blank box prompts you to enter content, characters outside the alphabet cause a decode failure message, and editing any option after a run invalidates the result until you press Run again

Related

⏫︎