Base58 Encoder/Decoder
Convert text, hex and files to and from Base58, the format used for Bitcoin and other cryptocurrency addresses. Verify Base58Check checksums, choose the Bitcoin, Flickr or Ripple alphabet, and process batches, all directly in your browser.
100% client-side · Web Crypto API · Your data is never stored or sent
Base58 is an encoding, not encryption. Never enter a private key or seed phrase on a computer that is online.
How Base58 Works
Base58 reads your data as one very large number and rewrites it in base 58, using an alphabet without 0, O, I and l so that nothing can be mistaken for something else. Leading zero bytes would vanish in a number, so each one is written as a leading 1. Base58Check wraps the data with a version byte at the front and a checksum at the end, which lets a reader detect almost every typing mistake.
Converting a very large number takes longer than a plain character-by-character encoding, so this page uses a divide-and-conquer method with the browser’s BigInt support and limits the input to 256 KB. The Bitcoin test vectors and several thousand random inputs were checked against reference implementations.
Base58Check Verification
Checks the 4-byte double-SHA-256 checksum of Bitcoin, Ripple and other addresses, and catches typos
Three Alphabets
Bitcoin, Flickr and Ripple alphabets, each verified against reference implementations
Exact Bytes
Text is encoded exactly as typed, hex input handles raw bytes, and undecodable bytes are shown as hex
Fast Conversion
A divide-and-conquer BigInt method handles 256 KB in under a second; the old method froze at a fraction of that
Real File Downloads
Encode a file to Base58 text, or decode Base58 text back into the original file and download it
Nothing Stored
Runs in your browser with no network requests, no history and no external scripts
Explore more free tools in our security tools collection, including our strong random password generator.
Frequently Asked Questions
1. What is Base58 encoding?
Base58 writes binary data using 58 characters: the digits and letters without the look-alike characters 0 (zero), O (capital o), I (capital i) and l (lowercase L), and without the symbols + and /. It was designed for Bitcoin so that addresses are easy to read, copy and say aloud. Each character carries about 5.86 bits, so Base58 text is roughly 37% longer than the data it encodes. Leading zero bytes are written as leading 1s.
2. What is Base58Check, and what does the checksum do?
Base58Check adds a version byte at the front and a 4-byte checksum at the end before encoding. The checksum is the first 4 bytes of SHA-256 applied twice to the version and payload. When you decode, a wrong checksum means the text was mistyped or damaged: a single wrong character is always caught, and a random mistake slips through only about once in 4.3 billion. Bitcoin addresses and WIF private keys use Base58Check, and this page verifies the checksum for you.
3. Which version byte should I use?
For Bitcoin, 00 gives addresses that start with 1, 05 gives script addresses that start with 3, 80 is a WIF private key and 6F is a testnet address. Other cryptocurrencies use other values, and some use more than one byte, so the page accepts 1 to 4 version bytes. Newer Bitcoin addresses that start with bc1 use Bech32, not Base58, and cannot be decoded here.
4. Why are there three alphabets?
Base58 is not fully standardised. Bitcoin’s alphabet starts with the digits and then the uppercase letters. Flickr’s puts lowercase letters before uppercase. Ripple’s (used by XRP addresses) is a differently ordered set of the same 58 characters that makes addresses start with r. The same bytes encode to different text in each alphabet, so you must pick the one that matches your data.
5. Why does my result differ from another tool?
A result depends on the exact bytes. Common causes are a trailing space or line break in the text, entering hex as text instead of choosing hex input, a different alphabet, using Base58Check in one tool and plain Base58 in the other, or a different version byte. This page encodes your text exactly as typed, as UTF-8, and ignores spaces and line breaks only when decoding.
6. Is there a size limit?
Yes: 256 KB for text and files. Base58 treats the whole input as one huge number, so the work grows faster than the size of the data. The page uses a divide-and-conquer method that handles 256 KB in well under a second on a typical computer, but an unlimited file could freeze the tab. For large files use Base64 instead.
7. Is Base58 encryption, and is it safe to paste keys here?
Base58 is an encoding, not encryption: anyone can decode it. Everything on this page runs in your browser and nothing is sent anywhere, but you should still never type a private key, seed phrase or WIF key into any website that is connected to the internet. To handle real keys, save this page and use it on an offline computer.
8. Is my data stored or sent anywhere?
No. Conversions happen in your browser, the page’s content security policy blocks outgoing network requests, and nothing is saved except your language choice. Earlier versions of this page loaded a script from an outside server and could show the original text in place of decoded binary data; this version loads no outside scripts and shows undecodable bytes as hex.