base58 · Bitcoin alphabet · encode · live

Encode & decode Base58

Bitcoin-style Base58 with no look-alike glyphs (0, O, I, l removed). Used by Bitcoin addresses, Solana keys, and crypto identifiers.

Base58 Converter
Input
34 B
1 lines
Output
47 B
1 lines
Status
ready
live
Ratio
1.38×
out/in
input · text
output · base58
27b6CfMNJ5jykuznxu929bdadhSy7cFeM1wD7xQEB4CLRQM
Quick Start

How to convert Base58

The Bitcoin Base58 alphabet drops the easily-confused glyphs 0, O, I, l. Leading zero bytes survive as leading 1s.

  1. 01

    Pick mode

    Encode (bytes → Base58) or decode (Base58 → bytes).

    Bytes flow through TextEncoder/TextDecoder for predictable UTF-8 semantics — emoji, surrogate pairs, and combining marks all encode losslessly.

    modeUTF-8TextEncoderlosslesslive
    mode · raw bytesencode · UTF-8
    encode · decode
    loaded · UTF-8MIME · ready
  2. 02

    Paste data

    UTF-8 text in encode mode, Base58 string when decoding.

    Hash and signature operations call crypto.subtle from the Web Crypto API, so output matches OpenSSL / Node bit-for-bit.

    utf8Web Cryptosubtledeterministiclive
    input · optionstext · live
    1BvBMSEYstWetqTF…
    options applied · livelive
  3. 03

    Live convert

    BigInt-based arithmetic — accurate for arbitrarily long inputs.

    Options re-run instantly through useEffect + useMemo — switching URL-safe mode or padding doesn’t re-encode from scratch.

    livememoisedoptionsinstantreactive
    out · encodedb58 · ready
    StV1DL6CwTryKyV
    encoded · livelossless
  4. 04

    Copy or download

    Output streams update as you type — no round-trip needed.

    Copy uses the Async Clipboard API; downloads ship via Blob with the appropriate MIME (text/plain, image/png, …) so external tools recognise them.

    exportclipboardblobMIME-correctclient-side
    ✓ · copiedready · done
    ✓ Copied
    shipped · ready to shipsuccess
Pro tips

Encoding without surprises

Always UTF-8 first

Use TextEncoder / TextDecoder for bytes ↔ string conversion. btoa alone breaks on non-ASCII.

URL-safe vs standard Base64

Standard uses +, /, =; URL-safe swaps to -, _, no padding. Don’t mix them.

Hashes aren’t passwords

SHA-256 is fast; that’s good for fingerprints, bad for passwords. Use bcrypt / argon2 for credentials.

Watch padding rules

Some decoders are strict about = padding, others auto-pad. If round-trips fail at exactly 1 or 2 bytes, check padding.

Use Web Crypto for keys

Generate cryptographic keys via crypto.subtle, never Math.random. The latter is predictable.

JWT decode ≠ verify

Decoding a JWT just splits and base64-decodes. Verification needs the issuer’s public key / shared secret.

Use Cases

When to use Base58

Crypto addresses, IPFS hashes, friendly IDs.

Bitcoin addresses

Legacy P2PKH and P2SH wrap version + payload + checksum. Output round-trips losslessly with the matching decoder — both run client-side, so end-to-end testing happens in a single tab. Encoding flows through TextEncoder for predictable UTF-8 semantics.

RFC-compliant

Solana keys

Public keys, signatures, and program IDs are Base58. Web Crypto's subtle.digest produces output that matches OpenSSL, GPG, and Node's crypto module byte-for-byte. That makes the result trustworthy as a content fingerprint, ETag, or integrity check.

OpenSSL-matched

IPFS CIDv0

Multihashes use Base58btc when CIDv0-encoded. Pairs cleanly with HMAC, JWT, and signed-URL workflows where bit-level correctness matters. The browser's crypto stack is FIPS 140-validated in Chrome and Firefox, so it's production-grade.

lossless

Friendly IDs

Resists typos — no zeros or look-alike letters. Output uses canonical RFC 4648 / 7515 alphabets so curl, openssl, and any standards-compliant decoder accept it as input. URL-safe variants drop padding for tokens that travel in query strings.

byte-identical

Short transaction IDs

Compact display of txids in block explorers. Heavy hashing runs through useMemo so large inputs don't block typing. PBKDF2, bcrypt, and Argon2 expose configurable cost factors — tune for your threat model, not the default.

spec-grade

Voice / printed codes

Safer for read-aloud workflows than Base64. Same input plus same options always yields identical bytes. That's the foundation for content-addressed storage (IPFS, Git, S3 ETags) and means the output is safe to commit to fixtures.

production-ready
FAQ

Frequently asked questions

No — this tool is raw Base58. Base58Check adds a 4-byte SHA-256 double-hash checksum before encoding, which you must compute separately.
They look identical in many fonts. Removing them prevents transcription errors when humans copy keys.
Each zero byte in input is emitted as a leading `1` in output so byte length is preserved on round trip.
Yes. Unlike Base32, Base58 differentiates upper- and lower-case letters.
No — Base58 conversion runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!