Base58 Decoder
Decode Base58 and Base58Check strings to hex, Base64 and text, verify the four-byte checksum and identify the version byte.
Decoded bytes
Paste a Base58 or Base58Check string above to decode it.
What is the Base58 Decoder?
The ByteTools Base58 Decoder converts a Base58 string back into the bytes it represents. It accumulates the value character by character with BigInt arithmetic, restores every leading 1 as a zero byte, and then shows you the result as hex, as Base64 and, when the bytes happen to be valid UTF-8, as readable text.
- Verifies the four-byte double-SHA-256 checksum
- Identifies well-known version bytes such as addresses and WIF keys
- Rejects the ambiguous characters 0, O, I and l with a clear message
- Output as hex, Base64 and UTF-8 text
- Bitcoin, Ripple and Flickr alphabets
- 100% client-side — nothing is uploaded
How to use the Base58 Decoder
- 1
Pick the alphabet your string uses — Bitcoin is the default and covers almost everything.
- 2
Paste the Base58 string; whitespace and line breaks are ignored.
- 3
Leave the Base58Check box ticked to verify the checksum, or untick it to decode a plain Base58 string.
- 4
Read the decoded bytes as hex, Base64 or UTF-8 text, and check the version byte label to see what kind of value it is.
About the Base58 Decoder
The ByteTools Base58 Decoder converts a Base58 string back into the bytes it represents. It accumulates the value character by character with BigInt arithmetic, restores every leading 1 as a zero byte, and then shows you the result as hex, as Base64 and, when the bytes happen to be valid UTF-8, as readable text.
In Base58Check mode it goes further: it separates the leading version byte and the trailing four-byte checksum, recomputes SHA-256 twice over the rest with the Web Crypto API, and tells you whether the two match. A mismatch means a typo, a truncation or a string that was never Base58Check — which is precisely the mistake the checksum exists to catch.
The characters 0, O, I and lowercase l are rejected with a clear explanation rather than a generic failure, because Base58 deliberately excludes them to stop people misreading an address. Everything runs 100% locally in your browser and nothing is uploaded, so a key or an address you are checking never leaves your own machine.
Frequently asked questions
How do I check whether a Bitcoin address is valid?
Paste it here with Base58Check enabled. The tool separates the checksum, recomputes it from the version byte and payload, and reports whether they match. A valid checksum proves the address was not mistyped, though it cannot tell you whether anyone actually controls it.
Why does my Base58 string fail to decode?
The usual cause is a character Base58 does not contain. There is no zero, capital O, capital I or lowercase l in the alphabet, so a hand-typed string often picks up one of those by mistake. The tool names the offending character so you can find it.
What does a checksum mismatch mean?
It means the payload and the trailing four bytes disagree, so the string is not intact. Usually a character was mistyped or the string was truncated by a line wrap. It can also mean the value was plain Base58 with no checksum at all, in which case untick the Base58Check box.
What is the version byte telling me?
It identifies what the payload is. 0x00 means a Bitcoin mainnet address, 0x05 a P2SH address, 0x80 a WIF private key, and 0x6F a testnet address. That first byte is also why all mainnet addresses start with the same character — the version constrains the leading digit.
Why is the UTF-8 output empty or unreadable?
Because most Base58 data is not text. Addresses and keys are hashes and random bytes, which almost never form valid UTF-8. The hex output is the useful one for those; the text view is there for the cases where someone encoded an actual string.
Related tools
Base58 Encoder
Encode text or hex bytes to Base58 with the Bitcoin, Ripple or Flickr alphabet, plus optional Base58Check with a version byte and checksum.
Base64 Decoder
Decode Base64 to readable text or download it as a file. Handles URL-safe base64url and missing padding automatically. Free, private, in-browser decoder.
Base32 Decode
Decode Base32 (RFC 4648) back to readable text online. Validates the input, ignores padding and spaces, and flags bad characters. Free and 100% private.
SHA-256 Hash Generator
Generate SHA-256 hashes of text or files with the browser's Web Crypto API. 64-character hex digest, uppercase option, instant copy. Free and private.
Hex to Text Converter
Convert hexadecimal back to readable UTF-8 text, accepting hex with or without spaces, 0x or \x prefixes, with clear errors for odd-length or invalid input.