Base58 Encoder / Decoder
Encode text to Base58 and decode Base58 back to text. Supports both Bitcoin and Flickr alphabets with arbitrary-precision BigInt arithmetic.
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzFrequently Asked Questions
What is Base58 encoding?
Base58 is a binary-to-text encoding scheme that uses 58 alphanumeric characters. It was designed to avoid visually ambiguous characters (0, O, I, l) and non-alphanumeric characters (+, /) found in Base64, making it ideal for human-readable identifiers like Bitcoin addresses.
What is the difference between Bitcoin and Flickr alphabets?
Both use 58 characters but in a different order. Bitcoin's alphabet starts with '123456789ABCDEFGH...' and is used in Bitcoin addresses and IPFS hashes. Flickr's alphabet starts with '123456789abcdefgh...' (lowercase first) and is used in Flickr short URLs.
How does Base58 compare to Base64?
Base58 is slightly less space-efficient than Base64 but avoids confusing characters (0/O, I/l) and special characters (+, /). Base64 is better for data transmission; Base58 is better for human-readable identifiers and addresses.
Can Base58 encode binary data?
Yes. Base58 can encode arbitrary binary data. This tool encodes text by first converting it to UTF-8 bytes, then applying the Base58 algorithm. For binary data, you would need to provide the raw bytes directly.
Why does this use BigInt?
Base58 encoding requires arbitrary-precision integer arithmetic because the input bytes are treated as a single large number that is repeatedly divided by 58. JavaScript's built-in BigInt provides this capability without any external libraries.