Base58 Encoder
Encode any text to Base58 using the Bitcoin alphabet. UTF-8 safe, runs in your browser.
EncodeBitcoin alphabetClient-sideFree to use
0 / 500,000
Try It Out
How to use
- Paste your text. Any UTF-8 text. Bytes are encoded with the Bitcoin Base58 alphabet.
- Copy the Base58 output. No 0, O, I, or l, so the result is unambiguous when typed or read aloud.
- Switch to decoder if needed. Use the Switch link to flip back and inspect Base58 you already have.
Common use cases
- Encoding wallet-style identifiers for Bitcoin or Solana tooling
- Generating Solana-style public key strings for tests and fixtures
- Producing IPFS CIDv0-style strings from raw bytes
- Creating compact, copy-friendly IDs that avoid look-alike characters
Frequently asked questions
- What is Base58 encoding best used for?
- Base58 is best suited for encoding short byte strings that users will read, type, or copy manually. It is the standard encoding for Bitcoin and Solana wallet addresses, IPFS CIDv0 content identifiers, and other blockchain-adjacent identifiers where a single misread character would be costly.
- Why does Base58 exclude the characters 0, O, I, and l?
- Those four characters are visually ambiguous: zero looks like the letter O, and uppercase I looks like lowercase l in many fonts. Satoshi Nakamoto designed the Bitcoin alphabet to drop them so that addresses could be safely read aloud or hand-copied without errors. The resulting 58-character alphabet is: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.
- Does this tool send my text to a server?
- No. The encoding runs entirely in your browser using JavaScript. Nothing you paste is transmitted anywhere.
- How does the tool handle UTF-8 text?
- Your text is first converted to its UTF-8 byte representation, and those bytes are then encoded as a Base58 number. If your input contains multibyte characters (accented letters, CJK, emoji), the byte count will exceed the character count, and the Base58 output will be longer than you might expect.
- How is Base58 different from Base64?
- Base64 uses 64 characters including +, /, and = padding, making it safe for binary data but awkward to copy and type. Base58 trades a smaller alphabet for human readability: no padding, no ambiguous characters, and no symbols that get mangled in URLs or emails. Base64 is better for raw binary bulk; Base58 is better for identifiers humans interact with.
- What does a leading "1" mean in a Base58 string?
- Each leading zero byte in the original data is represented as a "1" character in the output. This convention preserves significant leading zeros that the numeric encoding would otherwise drop. Bitcoin addresses starting with "1" owe that prefix partly to this rule and partly to the version byte in the underlying payload.
Related tools
How to use
- Paste your text. Any UTF-8 text. Bytes are encoded with the Bitcoin Base58 alphabet.
- Copy the Base58 output. No 0, O, I, or l, so the result is unambiguous when typed or read aloud.
- Switch to decoder if needed. Use the Switch link to flip back and inspect Base58 you already have.
Common use cases
- Encoding wallet-style identifiers for Bitcoin or Solana tooling
- Generating Solana-style public key strings for tests and fixtures
- Producing IPFS CIDv0-style strings from raw bytes
- Creating compact, copy-friendly IDs that avoid look-alike characters
Frequently asked questions
- What is Base58 encoding best used for?
- Base58 is best suited for encoding short byte strings that users will read, type, or copy manually. It is the standard encoding for Bitcoin and Solana wallet addresses, IPFS CIDv0 content identifiers, and other blockchain-adjacent identifiers where a single misread character would be costly.
- Why does Base58 exclude the characters 0, O, I, and l?
- Those four characters are visually ambiguous: zero looks like the letter O, and uppercase I looks like lowercase l in many fonts. Satoshi Nakamoto designed the Bitcoin alphabet to drop them so that addresses could be safely read aloud or hand-copied without errors. The resulting 58-character alphabet is: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.
- Does this tool send my text to a server?
- No. The encoding runs entirely in your browser using JavaScript. Nothing you paste is transmitted anywhere.
- How does the tool handle UTF-8 text?
- Your text is first converted to its UTF-8 byte representation, and those bytes are then encoded as a Base58 number. If your input contains multibyte characters (accented letters, CJK, emoji), the byte count will exceed the character count, and the Base58 output will be longer than you might expect.
- How is Base58 different from Base64?
- Base64 uses 64 characters including +, /, and = padding, making it safe for binary data but awkward to copy and type. Base58 trades a smaller alphabet for human readability: no padding, no ambiguous characters, and no symbols that get mangled in URLs or emails. Base64 is better for raw binary bulk; Base58 is better for identifiers humans interact with.
- What does a leading "1" mean in a Base58 string?
- Each leading zero byte in the original data is represented as a "1" character in the output. This convention preserves significant leading zeros that the numeric encoding would otherwise drop. Bitcoin addresses starting with "1" owe that prefix partly to this rule and partly to the version byte in the underlying payload.