How This Base58 Encoder Works
This base58 encoder takes any text, treats it as raw bytes, and converts it into a Base58 string using arbitrary-precision arithmetic (dividing the number represented by those bytes repeatedly by 58), the same core algorithm Bitcoin addresses and IPFS content identifiers use. In decode mode, it works as a base58 decoder, reversing a Base58 string back to its original bytes and text, validating every character against the selected alphabet along the way.
Three Base58 Alphabets
As a bitcoin base58 converter, Bitcoin mode uses the original 58-character alphabet Satoshi Nakamoto defined for Bitcoin addresses and private keys. IPFS mode uses the identical alphabet, since ipfs cid base58 content identifiers (the CIDv0 format) reuse Bitcoin's exact ordering. Flickr mode uses a variant with lowercase and uppercase letter blocks swapped, this flickr base58 alphabet was used by Flickr for its short photo and album URLs.
Understanding Base58 and Why It Excludes Confusing Characters
Base58 is Base64 with 6 characters removed: 0 (zero), O (capital o), I (capital i), l (lowercase L), plus the + and / symbols, characters that are easy to misread in certain fonts or mistype by hand. This makes it well suited for values people might need to read aloud, write down, or type manually, like Bitcoin addresses. A run of leading zero bytes in the input is preserved as that same number of leading "1" characters (the alphabet's first symbol) in the output, this is why the encoder and decoder both special-case leading zeros separately from the main arithmetic.
Common Uses
Decoding a Bitcoin address or IPFS CID to inspect its raw bytes, or encoding raw bytes into a Base58 string for use in a blockchain or distributed-systems context, are the most common reasons to encode text to base58 or decode base58 to text. Base58 also shows up in some short-URL and identifier schemes that value copy-paste and dictation friendliness over the shortest possible output.
What This Tool Doesn't Do
This tool performs raw Base58 encoding and decoding only, it doesn't implement Base58Check, the checksum-appending scheme real Bitcoin addresses actually use (a 4-byte SHA-256-based checksum appended before encoding, verified on decode). Pasting a real Bitcoin address here decodes the raw bytes correctly, but this tool won't add, strip, or validate that checksum for you. It also isn't an encryption or hashing function, Base58 is a reversible encoding, not a way to protect or obscure sensitive data.