Base58 Encoder/Decoder

Encode and decode Base58 text and files.

What Base58 Encoder/Decoder helps you do

Encode and decode Base58 strings used by Bitcoin addresses, IPFS content identifiers, and other compact binary-to-text schemes. Base58 avoids visually ambiguous characters such as 0, O, I, and l, which makes copied identifiers harder to misread. It is an encoding tool, not a wallet: it does not verify checksums or sign transactions.

Encoding and decoding run entirely in your browser. Input is not uploaded to Haivix.

How it works

The text or file is converted to bytes and encoded with the Base58 alphabet, which omits 0, O, I and l. Decoding maps each character back to a value and reconstructs the bytes. Whitespace is stripped before decoding, but the tool does not add or validate a checksum.

How to use Base58 Encoder/Decoder

  1. Paste text or bytes to encode, or paste a Base58 string to decode.
  2. Choose text or file mode depending on the payload.
  3. Copy the result and verify it against your protocol's expected alphabet and checksum rules.
  4. Download decoded bytes when the result is not readable text.

When to use it

  • Debug Base58 payloads in blockchain or IPFS tooling.
  • Convert test vectors when implementing Base58 in another language.
  • Inspect encoded identifiers without sending data to a server.
  • Check that a copied identifier has no ambiguous characters.
  • Turn a small binary fixture into a text-safe string.
  • Compare a Base58 value with an implementation's test vector.

When not to use it

  • Do not validate a Bitcoin address with this tool; checksums and network prefixes need chain-specific logic.
  • Do not use Base58 for a new protocol without a checksum or length rule.
  • Do not treat the encoded value as encryption.

Example

A value from an IPFS gateway is pasted and decoded. The first bytes identify the multihash prefix, which confirms the value is a CID rather than a random string. The actual content hash still needs the multihash parser to be interpreted correctly.

What you can do with Base58 Encoder/Decoder

  • Encode text or a file to Base58.
  • Decode a Base58 string back to bytes.
  • Use the standard Bitcoin Base58 alphabet.
  • Ignore whitespace in pasted identifiers.
  • Copy the result or download decoded bytes.
  • Keep the payload local to the browser.
  • Handle leading zero bytes with leading 1 characters.
  • Decode wallet or CID values to inspect their bytes.
  • Encode small binary fixtures for a test vector.

Example: inspect an IPFS-style identifier

Paste the Base58 value and decode it to inspect the bytes. A readable prefix often identifies the protocol or the version byte.

If the decoded bytes look like text, switch to the text view; if they look binary, download them and inspect with the right tool.

Do not treat the decoded output as a valid address or CID until the protocol's checksum or multihash rules have been checked separately.

What to know before you start

  • No checksum or address validation.
  • Uses the standard Bitcoin Base58 alphabet only.
  • Large files are limited by browser memory.
  • The output is not encrypted or signed.
  • It does not recognize protocol-specific version bytes.

Common mistakes

  • Assuming a Base58 string is a valid Bitcoin address without checking the checksum.
  • Mixing Base58 and Base58Check, which adds a version byte and checksum.
  • Copying a value with an ambiguous character and decoding it successfully but incorrectly.
  • Expecting the tool to know the network or version prefix.
  • Using Base58 where Base64url is the protocol's actual encoding.
  • Decoding a Solana or Tron address with Bitcoin-specific assumptions.
  • Trying to Base58-decode a hex string.
  • Assuming Base58 is case-insensitive.

Troubleshooting

If decoding fails, check for a character outside the Base58 alphabet, such as 0, O, I or l.

If the decoded bytes look wrong, the source may use Base58Check or a different alphabet; strip the checksum or use the protocol's tool.

If the result is longer than expected, leading zero bytes in the source can map to leading 1 characters in Base58.

If a value from a wallet does not decode, confirm that it is not a Bech32 address, which uses a different encoding.

If a file is very large, the whole value is held in memory; split or use a command-line tool.

If an address from a wallet fails, check whether it is Bech32 or Bech32m rather than Base58; those formats use a different alphabet and checksum.

If the decoded output starts with several zero bytes, that is expected: each leading 1 in Base58 represents a leading zero byte.

If the encoded result contains a character you did not expect, check the alphabet: Base58 excludes 0, O, I and l by design.

Related standards and documentation

  • Base58 is popularized by Bitcoin but is not an IETF standard.
  • Base58Check adds a version byte and a 4-byte double-SHA-256 checksum.
Encoding only, no checksum
  • Ambiguous characters are omitted.
  • Address validation needs chain logic.
  • Base58Check is a different format.

Frequently Asked Questions