Decode a Base58 string such as a Bitcoin address or IPFS CIDv0 back to its underlying bytes, shown as text where possible and hex otherwise.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
Reading a Base58 identifier
Decoding treats the string as a large number in base 58 and converts it back to bytes. Leading 1s are the exception: each represents a leading zero byte, which a pure numeric conversion would lose because leading zeros have no value.
Worked example
A Bitcoin address decodes to 25 bytes: 1 version byte + 20 hash bytes + 4 checksum bytes An IPFS CIDv0 decodes to 34 bytes beginning 12 20 (sha2-256, 32 bytes long)
What the output means
Base58 payloads are usually binary rather than text, so the result is shown as hexadecimal, with a text rendering only where the bytes actually form readable characters. Expecting a word and receiving hex normally means the data was never text.
Why a wrong character fails loudly
The alphabet excludes 0, O, I and l, so any of those in the input is a transcription error rather than data — someone read a 1 as an l, or an O as a 0. The decoder reports the position instead of producing plausible wrong bytes.
Limits
Decoding is not validation: it does not verify a Base58Check checksum, and a decodable address may still be meaningless. Everything runs in your browser.
How to use the Base58 Decoder
- Paste the Base58 string – a Bitcoin address, an IPFS CIDv0 or any Base58 value.
- Leave the output option on "Text if possible, else hex" unless you know the payload is binary.
- Click "Decode Base58" to see the underlying bytes.
Frequently asked questions
Why does a Bitcoin address decode to hex rather than words?
Because the bytes behind an address are a version byte, a hashed public key and a checksum – binary values, not text. Hex is the only sensible way to display them.
The decoder rejects a character that looks perfectly normal.
Base58 deliberately excludes 0, O, I and l. If your string contains one, it was either mistyped, or it is not Base58 at all. The error names the exact character and position.
Does this validate a cryptocurrency address?
No. It decodes the Base58 representation only. Validating an address additionally requires checking the Base58Check checksum and the version byte for the network in question, which this tool does not do.