Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Base32, Base58 & Base85 Encoder/Decoder

Every Base-N encoding in one place, with checksums verified and the encoding detected.

Developer No upload Works offline Free, no sign-up

00 Bitcoin address · 05 script address · 6f testnet

Next steps

About the Base32, Base58 & Base85 Encoder/Decoder

Encode text, hex bytes, whole numbers or files into Base32 (RFC 4648 and base32hex), Crockford Base32, Base58 and Base58Check, Base62, Base45, Ascii85, Z85 or Base85, and decode them back to text, hex, a number or a file. Paste a string you cannot place and choose Auto-detect: every decoder runs, and the readings that decode cleanly are ranked by how well the characters fit each alphabet, whether a checksum verifies and whether the result is readable.

Checks are part of the job. Base58Check strings (Bitcoin addresses, WIF private keys, BIP32 xpub and xprv keys) have their double-SHA-256 checksum verified and their version byte named, and Crockford Base32 can carry its modulo-37 check symbol, which catches a mistyped or swapped character. Everything runs in your browser: nothing you paste or open is uploaded.

How to use it

  1. Choose Encode or Decode, then the encoding. In Decode mode, Auto-detect works out the encoding for you and lists the other readings that also fit.
  2. To encode, say what the input is — Text (UTF-8), Hex bytes, a Number (for Crockford Base32, Base58 and Base62) or a File — then type, paste or drop it. The result updates as you type.
  3. Set the encoding’s options if you need them: padding and lower case for Base32, the alphabet for Base58 and Base62, the version byte for Base58Check, the check symbol and hyphen groups for Crockford, the <~ ~> delimiters for Ascii85.
  4. When decoding, choose how to show the result — text, hex or a number — and read the checksum and version details below it. Binary results can be downloaded as a file.
  5. Copy or download the result, or press Use as input to convert it back the other way.

Examples

Base32 (RFC 4648 test vector)
Input
foobar
Result
MZXW6YTBOI======

base32hex gives CPNMUOJ1E8======; without padding, Base32 is MZXW6YTBOI.

Crockford Base32 of a number, with its check symbol
Input
1234
Result
16JD

1234 = 1·32² + 6·32 + 18, written 16J; 1234 mod 37 = 13, whose symbol is D. Decoding 16J-D or 16jd gives 1234 again and confirms the check.

Decode a Bitcoin address (Base58Check)
Input
17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem
Result
Version 0x00 — Bitcoin address (pay to public key hash)
Payload: 20 bytes
Checksum: correct
Base45 (RFC 9285 example)
Input
Hello!!
Result
%69 VD92EX0

Base45 includes the space character, so the space in the middle is part of the encoding.

Z85 (ZeroMQ RFC 32 test case)
Input
86 4F D2 6F B5 59 F7 5B (hex)
Result
HelloWorld

Common uses

  • Reading a TOTP secret from an otpauth:// link (Base32) as hex, or turning hex key bytes into the Base32 an authenticator app expects.
  • Checking that a Bitcoin address, WIF key or BIP32 extended key was copied correctly, and seeing its version byte and payload.
  • Turning a ULID or a Crockford-encoded ID into its 16 bytes or its number, and back.
  • Making short, URL-safe IDs from numbers with Base58 or Base62, as link shorteners do.
  • Decoding Ascii85 streams from PostScript and PDF files, Z85 keys from ZeroMQ and Base85 from git binary patches or Python’s base64.b85encode.
  • Working out what an unknown string from a log, a QR code or a config file actually encodes.

Which encoding is which

  • Base32 (RFC 4648 §6): A–Z and 2–7 with = padding, 8 characters for every 5 bytes (+60%). Case-insensitive, so it suits secrets people type, such as TOTP keys. base32hex (§7) uses 0–9 and A–V, which keeps the sort order of the data; DNSSEC NSEC3 records use it.
  • Crockford Base32 (crockford.com/base32): 0–9 and A–Z without I, L, O and U, read case-insensitively with I and L taken as 1 and O as 0, hyphens ignored, and an optional check symbol (the value modulo 37). ULIDs use its alphabet.
  • Base58: the Bitcoin alphabet leaves out 0, O, I and l, which look alike. The data is one big number, so the output grows by about 37%; each leading zero byte becomes one 1. Flickr short links and Ripple use their own Base58 alphabets, offered here too.
  • Base58Check (Bitcoin wiki): a version byte, the payload and the first 4 bytes of SHA-256(SHA-256(version + payload)) as a checksum, all in Base58.
  • Base62: digits and letters only, so it needs no escaping in URLs; about +34%. There is no single standard, so the alphabet order is a choice here.
  • Base45 (RFC 9285): 3 characters for every 2 bytes (+50%), using only the characters a QR code can store most compactly in its alphanumeric mode; EU Digital COVID Certificates use it after an HC1: prefix.
  • Ascii85, Z85 (ZeroMQ RFC 32) and Base85: 5 characters for every 4 bytes (+25%), the most compact here. Ascii85 is Adobe’s form (<~ … ~>, z for four zero bytes) used in PostScript and PDF; Z85’s alphabet has no quotes or backslash, so it can be written inside a quoted string in source code; Base85 uses the RFC 1924 alphabet, as Python’s base64.b85encode and git do.

Groups of bits or one big number

Base32, Base45 and the Base85 family work in fixed groups (5 bytes become 8 Base32 characters, 2 bytes become 3 Base45 characters, 4 bytes become 5 Base85 characters), so they convert files of any size quickly. Base58 and Base62 cannot: their alphabets are not a power of two, so the whole input is converted as one big number. That is why leading zero bytes need a rule of their own, and why this page limits those encodings to 64 KB of data.

Crockford Base32 is defined for numbers. Packed as a number (the default), the symbols are the digits of the data read as one big number, with any spare bits at the front — the way ULIDs pack 16 bytes into 26 symbols. Packed as a bit stream, the bytes are cut into 5-bit groups from the start, like RFC 4648 Base32, with spare bits at the end. Both are in use, so the option is offered for decoding too.

Limitations

  • Base58, Base58Check and Base62 handle up to 64 KB of data, because they convert it as one big number; the other encodings handle files up to 50 MB.
  • Base62 has no standard: other tools may use another alphabet order or another rule for leading zero bytes.
  • A correct Base58Check checksum shows the string was copied exactly. It does not show that an address or key is in use, valid on a network or owned by anyone.
  • Z85 only encodes whole blocks of 4 bytes, as its specification says; the tool tells you rather than padding the data silently.
  • Auto-detect suggests readings. Short strings often decode cleanly in several encodings, so check the result.

Privacy

Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

Frequently asked questions

Why does a Base58 string start with several 1s?

In Base58, 1 is the digit zero. Because the data is converted as one number, leading zero bytes would otherwise vanish, so each one is written as its own 1. Bitcoin addresses start with 1 because their version byte is 0x00.

How do I know whether a string is Base32, Base58 or something else?

Choose Decode and Auto-detect. The tool tries every decoder and ranks the clean readings: Base32 uses only A–Z and 2–7 (often with = padding), Base58 never contains 0, O, I or l, Base45 has upper case with symbols such as space, $ or :, and Ascii85 is usually wrapped in <~ ~>. A verified Base58Check checksum is almost certain proof; a random string passes it only about once in four billion tries.

Why does another tool give a different Crockford Base32 result?

Crockford Base32 is defined for numbers, and tools pack bytes into it in two ways: as one big number (spare bits at the front, as in ULIDs) or as a bit stream like RFC 4648 (spare bits at the end). For data whose length in bits is a multiple of 5 both agree; otherwise switch Pack bytes to match the other tool.

Is it safe to paste a private key here?

The page never sends what you paste anywhere: decoding happens in your browser and works offline. Still, a WIF or xprv private key gives control of the funds it protects, so the tool marks such keys clearly; avoid pasting real keys into any page you do not fully trust, and never share them.

Which encoding gives the shortest text?

Ascii85, Z85 and Base85 add 25%, Base62 about 34%, Base58 about 37%, Base45 50% and Base32 60%. Base64, for comparison, adds about 33%. The shortest is not always best: Base32 survives case changes, Base58 avoids look-alike characters, and Base45 fits QR codes.

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.