Base58 to Hex Converter Online Free

Decode Bitcoin, Ripple, or Flickr Base58 strings to hex - with separator, case, and prefix controls. Free, client-side, instant, offline.

Decode Base58 strings — Bitcoin addresses, Ripple, or Flickr — to raw hexadecimal bytes. Leading-zero bytes are preserved correctly, and an inline error names any invalid character.

How to Use Base58 to Hex Converter Online Free

  1. Paste your Base58 string into the input. Bitcoin addresses, Base58Check-encoded keys, Ripple account IDs, and Flickr photo IDs are all valid inputs. Whitespace is stripped automatically.
  2. Pick the alphabet: Bitcoin is the default and covers most cases (Bitcoin addresses, WIF private keys, BIP-32 xpubs). Ripple uses a shuffled dictionary. Flickr swaps the case ordering. The wrong alphabet produces a character-not-found error rather than silent garbage.
  3. Watch validation in real time - characters outside the selected alphabet (like 0, O, I, l in Bitcoin mode) surface an inline error naming the offender.
  4. Leading zero bytes are preserved. In Bitcoin encoding each leading 1 represents a zero byte - an uncompressed mainnet address begins with 00 once decoded. The stats line shows the exact leading-zero byte count so you can spot a stripped prefix.
  5. Pick a separator and case for the hex output: space-separated lowercase (default, matching xxd), or JSON array with 0x prefix for paste-ready Bitcoin-library input.
  6. Copy, Download, or press Ctrl+Enter (⌘+Enter on Mac) to decode and copy in one shortcut. Download saves base58-hex-<alphabet>-<iso>.txt.
  7. Verify with the Base58Check checksum (last 4 bytes) when the input is an address - the first 21 bytes are the payload, the last 4 are SHA-256²'s first four bytes. This tool just decodes; a separate Base58Check tool verifies.

Frequently asked questions

How does this Base58 converter parse my Bitcoin address?

It walks the Base58 characters through the classic “multiply the accumulator by 58 and add the next digit” big-integer algorithm, preserving any leading 1s as literal zero bytes, and finally renders the result as hex. That matches the reference implementation in Bitcoin Core.

Does this tool work completely offline?

Yes. Decoding runs entirely in your browser – no network requests, no logging, no backend calls. Critical for handling Bitcoin private keys or xpubs where exfiltration is a serious risk.

Is Base58 structurally different from Base64?

Yes. Base58 drops the visually ambiguous characters 0, O, I, l and the non-alphanumeric + and /. The result is safe for handwritten transcription and double-click selection but slightly less dense than Base64 (needs about 1.37 output characters per input byte vs Base64’s 1.33).

What alphabets are supported?

Three: Bitcoin (the reference alphabet for Bitcoin/Litecoin/Dogecoin addresses and Base58Check), Ripple (used by the XRP ledger – a permutation of the Bitcoin alphabet), and Flickr (used in Flickr photo IDs, case-order swapped).

Is this free?

Yes, 100% free with no cap on input length or number of decodes. No sign-up, no premium tier, no watermark.

Why do leading 1s matter in Bitcoin addresses?

In Bitcoin Base58 encoding, each leading 1 in the input represents a leading zero byte in the decoded output. The version byte of a mainnet P2PKH address is 0x00, which is why all mainnet legacy addresses start with exactly one 1. Dropping that would change the address entirely.

Does it validate the Base58Check checksum?

No – this tool does a pure Base58 → hex decode. Base58Check verification (the last 4 bytes being the first 4 of SHA-256²(payload)) is a separate step that needs a SHA-256 implementation. For Bitcoin address validation specifically, use a dedicated Base58Check validator.

What if my string contains a character outside the alphabet?

The inline error names the first offending character. Common causes: pasting a Bitcoin address with a zero (0) when the alphabet is Bitcoin (which forbids 0), or forgetting to switch alphabets when decoding a Ripple account ID.

Why does the output sometimes start with a long run of zeros?

Because Base58 encodes leading zero bytes explicitly as the alphabet’s first character (1 in Bitcoin). Every leading 1 in the Base58 input becomes a 00 byte in hex. That’s expected; the stats line shows exactly how many.

How do I encode hex back to Base58?

Use the sibling Hex to Base58 converter. It preserves leading zero bytes the same way (each becomes a leading 1), so round-trips are exact.