Base58 Encoder / Decoder
A Base58 Encoder / Decoder converts binary data to and from a 58-character alphabet that omits 0, O, I and l to prevent misreading, treating the input as one big integer rather than packing bits — and verifies the four-byte Base58Check checksum used by Bitcoin addresses.
The standard alphabet. Omits 0, O, I and l so nothing can be misread, which is the entire reason Base58 exists.
About Base58 Encoder / Decoder
Base58 exists because Bitcoin addresses get copied by hand. Removing zero, capital O, capital I and lowercase l eliminates every character pair that people and OCR reliably confuse. Because 58 is not a power of two, the encoding is not bit-packing: the whole input is read as one big-endian integer and repeatedly divided, which has a consequence that trips up most implementations. Leading zero bytes carry no numeric weight, so they vanish unless encoded separately as leading '1' characters — and a Bitcoin P2PKH address begins with a 0x00 version byte, so getting this wrong corrupts precisely the values that matter. This tool handles it, works on real bytes rather than round-tripping through a string, and supports the Bitcoin, Ripple and Flickr alphabets. Turn on Base58Check and it appends or verifies the four-byte double-SHA-256 checksum, tells you whether that checksum is valid, and names the version byte — so a mistyped address is reported as a bad checksum rather than as plausible-looking garbage.
What Base58 Encoder / Decoder does
- Bitcoin/IPFS, Ripple and Flickr alphabets
- Base58Check: appends or verifies the 4-byte double-SHA-256 checksum
- Says whether a checksum is valid, and what it should have been
- Names the version byte — P2PKH, P2SH, WIF key, testnet, xpub/xprv
- Handles leading zero bytes correctly, which most implementations drop
- Input and output as text, hex bytes or Base64
- Rejects 0, O, I and l with a hint about the character you probably meant
When to reach for Base58 Encoder / Decoder
- Checking whether a Bitcoin address was copied correctly before sending to it
- Pulling the version byte and hash out of a P2PKH or P2SH address
- Inspecting an IPFS CIDv0 hash
- Decoding a WIF private key or a BIP-32 extended key prefix
- Encoding a short identifier that survives being copied by hand
How to use Base58 Encoder / Decoder
- 01
Paste the value
Enter a Base58 string to decode, or text or hex bytes to encode.
- 02
Turn on Base58Check for addresses
Bitcoin addresses, WIF keys and extended keys are all Base58Check. With it on, the checksum is verified and the version byte named.
- 03
Choose the alphabet
Bitcoin is the default and also covers IPFS. Switch to Ripple for XRP addresses, which start with 'r'.
- 04
Read the result
Switch the output to hex to see raw bytes. Any checksum failure is called out explicitly.
When to use Base58 Encoder / Decoder vs alternatives
| Alternative | Use Base58 Encoder / Decoder when… | Use the alternative when… |
|---|---|---|
| A blockchain explorer's address lookup | you only want to know whether the string is well-formed, and you would rather not tell a third party which address you are about to transact with. | you need on-chain balance or transaction history, which requires network access by definition. |
| A Python or JS snippet in a REPL | you want the checksum verified and the version byte named without writing the double-SHA-256 step yourself. | it is part of a larger script. |
| Asking an AI chatbot | always, for this one — Base58 is big-integer division and a language model cannot do it reliably. It will produce something that looks like an answer. | you want the format explained rather than a value decoded. |
Frequently asked questions
What is the difference between Base58 and Base58Check?
Why does Base58 exclude 0, O, I and l?
Why do some Base58 decoders lose the leading bytes?
Can I check whether a Bitcoin address is valid?
What is the version byte?
Is it safe to paste a private key here?
Related tools
Related concepts
Base64
Base64 is a way of encoding arbitrary binary data as a string of 64 ASCII characters (A–Z, a–z, 0–9, '+', '/') so it can travel through systems that only handle plain text — like email, URLs, JSON, or HTML data URIs.
Cryptographic Hash
A cryptographic hash function takes any input and produces a fixed-length pseudo-random output (the 'digest') that uniquely identifies the input — and is computationally infeasible to reverse, making hashes the foundation of integrity checks, content addressing, and password storage.