Ready to convert
Paste input and click Encode or Decode// encode & decode base58 strings in one click
Encode and decode Base58 strings instantly. Works with Bitcoin addresses, wallet keys, IPFS CIDs, and any compact Base58 or Base58Check encoding — free, browser-based.
Ready to convert
Paste input and click Encode or DecodeClick ENCODE to convert text/hex → Base58, or DECODE to convert Base58 → text/hex.
Choose "Text (UTF-8)" for plain strings or "Hex bytes" for raw byte data in hex notation.
Paste your input, click the button or press Ctrl+Enter. Copy your result with one click.
Base58 is a binary-to-text encoding that uses 58 alphanumeric characters — excluding 0 (zero), O (capital o), I (capital i), and l (lowercase L) to avoid visual ambiguity. It was popularized by Bitcoin for encoding addresses and keys.
Base58Check adds a 4-byte SHA256d checksum to detect transcription errors — critical for cryptocurrency addresses.
Base58 is a binary-to-text encoding scheme using 58 characters from the alphanumeric set, deliberately omitting 0, O, I, and l to prevent visual confusion. It produces compact strings ideal for IDs, wallet addresses, and content hashes.
Base64 uses 64 characters (including +, /, and = padding) and is optimized for data transfer. Base58 avoids ambiguous characters and padding, making it better suited for human-readable identifiers like Bitcoin addresses or IPFS CIDs.
Base58Check is a variant that appends the first 4 bytes of a double-SHA256 hash of the payload as a checksum. This lets clients detect typos or corruption. Bitcoin addresses and WIF private keys use Base58Check encoding.
This tool uses the Bitcoin Base58 alphabet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. This is the most widely used Base58 alphabet and is compatible with Bitcoin, Litecoin, IPFS CID v0, and many other systems.
Yes. Paste a Bitcoin address into the input field in DECODE mode. The tool will decode it to raw hex bytes and, if it detects Base58Check formatting, will validate the embedded checksum and report whether it passes.
Yes — IPFS CID v0 hashes (starting with "Qm") are Base58-encoded SHA256 multihashes. You can decode them here to reveal the underlying byte data. CID v1 uses a different encoding (multibase) and may not be compatible.
No. All encoding and decoding happens entirely in your browser using JavaScript. No data is transmitted to any server. This makes the tool safe for sensitive strings like private keys or internal IDs.
You can provide input as plain UTF-8 text or as a hex string (e.g. deadbeef01). When encoding, select the correct format from the dropdown. When decoding, paste the Base58 string directly — format is auto-detected.
Base58 is a binary-to-text encoding format designed specifically for human readability and error resistance. Unlike Base64 — which encodes arbitrary binary data using 64 printable ASCII characters including +, /, and = — Base58 deliberately removes characters that look similar: the digit zero (0), capital letter O (O), capital letter I (I), and lowercase l (l). This careful exclusion makes Base58-encoded strings far less prone to transcription errors, which is critical when humans are expected to manually type or verify an identifier.
💡 Looking for premium web development assets? MonsterONE offers unlimited downloads of templates, UI kits, and developer tools — worth checking out.
Base58 was introduced by Satoshi Nakamoto as part of the Bitcoin project in 2008. Bitcoin needed a way to encode 160-bit public key hashes (and other binary data) into short, user-friendly strings that could be copied, emailed, or printed on paper without ambiguity. The result was the Bitcoin Base58 alphabet — 58 characters chosen from alphanumeric ASCII — and it remains the dominant Base58 standard used today.
The specific alphabet is: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Notice that it starts at 1 rather than 0, which carries semantic meaning in Bitcoin: a leading 1 in a Base58Check address represents a zero byte prefix indicating a P2PKH (Pay-to-Public-Key-Hash) address on mainnet.
Base58 encoding treats the input bytes as a large unsigned big-endian integer, then repeatedly divides it by 58, collecting remainders and mapping each to a character in the alphabet. Leading zero bytes are handled specially: each is converted to a leading 1 character (the first character of the alphabet) to preserve them, since the big-integer math would otherwise discard them.
Decoding is the reverse: each character is mapped to its index in the alphabet, then the digits are combined as a base-58 number using Horner's method, and leading 1 characters are converted back to zero bytes. The process is mathematically identical to converting between number bases, which is why it requires big-integer arithmetic for correctness.
Raw Base58 has no built-in mechanism for detecting corruption. A single typo in a Bitcoin address would silently produce a different valid-looking address, potentially sending funds to an unrecoverable location. To solve this, Base58Check was introduced: before encoding, a 4-byte checksum is appended to the payload. This checksum is computed as the first 4 bytes of SHA256(SHA256(payload)) — a double SHA-256 hash. On decode, the receiver recomputes the checksum from the payload portion and compares it with the embedded checksum. If they don't match, the data has been corrupted or mistyped.
This tool automatically detects whether a decoded Base58 string appears to be Base58Check-formatted and reports the checksum validation result. This is useful when working with Bitcoin wallet import format (WIF) keys, legacy Bitcoin addresses (P2PKH, P2SH), and Litecoin or Dogecoin addresses that share the same scheme.
Cryptocurrency addresses and keys. Every legacy Bitcoin address you've seen — starting with 1 or 3 — is a Base58Check-encoded string. WIF private keys (starting with 5, K, or L) are also Base58Check. Litecoin, Dogecoin, Zcash, and dozens of other coins use the same scheme with different version bytes.
IPFS content identifiers (CID v0). InterPlanetary File System content IDs in version 0 format — those long strings starting with Qm — are Base58-encoded SHA2-256 multihashes. When you pin a file to IPFS and get back a CIDv0, you can use this tool to inspect the underlying 34-byte multihash structure.
Compact database and URL identifiers. Developers often use Base58 to generate short, unique identifiers for database records or URL slugs. A 128-bit UUID encoded in Base58 produces a 22-character string without hyphens — shorter than UUID's canonical 36-character form and free of the URL-unsafe characters in Base64.
Key derivation and protocol buffers. Some cryptographic protocols encode derived keys, nonces, or protocol messages in Base58 for interchange. Tools like Electrum seed phrases and Stellar account IDs are Base58 or close variants.
vs. Hexadecimal. Hex is universal and unambiguous, but verbose: one byte becomes two characters. Base58 is roughly 1.37× more compact than hex — a 25-byte Bitcoin address becomes 34 Base58 characters vs. 50 hex characters.
vs. Base64. Base64 is more space-efficient (1.33× expansion vs. Base58's ~1.37×) but includes +, /, and =, which break in URLs and require additional escaping. Base64 is better for binary data transport (email attachments, JSON); Base58 is better for identifiers that humans handle.
vs. Bech32. Bitcoin's newer SegWit addresses use Bech32 encoding with a different alphabet and a more sophisticated error-detection code (BCH polynomial). Bech32 can pinpoint the location of transcription errors, not just detect them — a significant advantage for addresses. However, Base58Check remains dominant in legacy systems and is simpler to implement.
Most languages have Base58 libraries available. In JavaScript, bs58 (npm) provides encode/decode with the Bitcoin alphabet. In Python, the base58 package or the bitcoin library cover the same. In PHP, GMP extension enables big-integer arithmetic for a clean implementation. If you implement it yourself, the key pitfalls are: correctly handling leading zero bytes (don't let them vanish through big-integer conversion), using big-integer math rather than 64-bit integers for inputs longer than 8 bytes, and using the correct alphabet for your target system.
This Base58 encoder/decoder is fully browser-based — all computation runs in JavaScript in your browser, nothing is sent to any server. You can safely use it with sensitive strings. Select ENCODE to convert UTF-8 text or hex bytes into a Base58 string, or DECODE to reverse a Base58 string into its hex and text representations. When decoding, the tool automatically checks for a Base58Check checksum and reports whether it's valid — useful for verifying cryptocurrency addresses before use.