Base58 Encoder/Decoder
Encode and decode Base58 data with support for Bitcoin, Flickr, and Ripple variants. Perfect for cryptocurrency addresses, compact IDs, and human-readable codes that avoid ambiguous characters.
Encoding Options
Standard for cryptocurrency (1-9, A-Z, a-z)
Recommended Settings
Base58 Encoding Best Practices
- •Use Bitcoin variant for cryptocurrency applications - it's the industry standard
- •Base58 avoids ambiguous characters (0,O,I,l) making it ideal for manual transcription
- •Leading zeros are preserved as leading '1's - important for cryptocurrency addresses
- •Base58 increases data size by ~37% compared to original (more than Base64's 33%)
- •Remember: Base58 is encoding, not encryption - don't use it for security alone
Common Use Cases
- •Bitcoin addresses: Encode/decode legacy Bitcoin addresses (P2PKH, P2SH)
- •Private keys: Handle WIF (Wallet Import Format) encoded private keys
- •IPFS: Decode IPFS content identifiers and multihash encodings
- •URL shorteners: Generate compact, readable short URLs without ambiguous characters
- •Unique IDs: Create human-friendly identifiers for sessions, referrals, or tokens
Pro Tips
- •Live conversion updates automatically as you type for instant feedback
- •Upload files to encode/decode binary data without text interpretation
- •Whitespace is automatically removed during decoding for formatted strings
- •Bitcoin addresses starting with '1' use Base58Check (includes checksum validation)
Most Popular
Most users prefer Bitcoin variant for cryptocurrency and general-purpose compact encoding
When to Use This Tool
Encode and decode Bitcoin, Ethereum (legacy), and other cryptocurrency wallet addresses and private keys. Base58 is the standard encoding for Bitcoin addresses (both legacy P2PKH and P2SH formats), providing a compact representation that avoids visually similar characters (0/O, I/l). Essential for cryptocurrency wallets, blockchain explorers, and payment systems.
Recommended: Blockchain & Crypto
Generate short, human-readable identifiers that avoid ambiguous characters. Base58 is ideal for URL shorteners, unique IDs, session tokens, and referral codes where visual clarity matters. The absence of look-alike characters (0/O, 1/I/l) reduces transcription errors when codes are manually typed or spoken.
Recommended: ID Generation
Encode binary data for QR codes, barcodes, or compact text representation. Base58 provides better density than Base64 for alphanumeric-only systems while maintaining readability. Used in IPFS content addresses, multihash encodings, and distributed systems where compact, unambiguous identifiers are crucial.
Recommended: Data Encoding
How It Works
Choose Encode or Decode mode using the toggle buttons at the top
Select Base58 variant: Bitcoin (standard), Flickr (lowercase-first), or Ripple (XRP)
Type or paste your text (encode) or Base58 string (decode) in the input field
The tool automatically converts as you type with live preview
For encode: Text is converted to UTF-8 bytes, then to a big integer (base-256)
Big integer is divided by 58 repeatedly, with remainders mapped to Base58 alphabet
Leading zero bytes are counted and preserved as leading '1's (or first alphabet char)
For decode: Base58 string is converted to big integer using alphabet position values
Big integer is converted back to bytes by dividing by 256 and extracting remainders
Leading '1's are converted back to leading zero bytes to preserve original data
Whitespace is automatically stripped during decoding for clean input
Click Upload to load file contents, or use Copy/Download to export results
All processing happens in browser using BigInt - your data never leaves your device
100% Private
Files never leave your device. All processing happens locally in your browser.
Lightning Fast
Powered by Client-side JavaScript with BigInt for precise base-256 to base-58 mathematical conversion for optimal performance on modern browsers.
Open Source
Built with verified, open-source libraries. Fully transparent.
Frequently Asked Questions
What is Base58 and why is it used?
Base58 is an encoding scheme that uses 58 alphanumeric characters, specifically excluding visually similar characters: 0 (zero), O (uppercase o), I (uppercase i), and l (lowercase L). This makes it ideal for applications where codes may be manually transcribed, like cryptocurrency addresses. It's more compact than Base64 for systems that only support alphanumeric characters, and the absence of ambiguous characters reduces human error.
What's the difference between Base58 variants?
Bitcoin Base58 (most common) uses the alphabet starting with '1-9' then uppercase A-Z (excluding I and O) then lowercase a-z (excluding l). Flickr Base58 uses the same characters but starts with lowercase letters for better lexicographic sorting. Ripple Base58 uses a completely different alphabet starting with 'rpshnaf39w...'. Bitcoin variant is the standard for cryptocurrency; Flickr is for URL-friendly sorted IDs; Ripple is specific to Ripple/XRP blockchain.
How do I decode a Bitcoin address?
Select 'Decode from Base58' mode and 'Bitcoin' variant. Paste your Bitcoin address (starting with 1, 3, or bc1 for legacy addresses) and the tool will decode it to the underlying bytes. Note that Bitcoin addresses are actually Base58Check encoded (includes checksum), but this tool shows the core Base58 decoding. The output will be the raw decoded bytes as text. For complete address validation, additional checksum verification is needed.
Can Base58 encode any data or just text?
Base58 can encode any binary data - text, images, files, or raw bytes. When encoding text, the tool converts it to UTF-8 bytes first, then applies Base58 encoding. When decoding, it converts Base58 back to bytes and interprets them as UTF-8 text. For non-text binary data, use file upload to preserve the exact byte sequence without text interpretation.
Why doesn't Base58 have padding like Base64?
Base58 doesn't need padding because it's a mathematical base conversion, not a bit-shifting scheme like Base64. Each input byte sequence maps to a unique Base58 string through big integer arithmetic (base-256 to base-58 conversion). The length of the output is determined by the numeric value, not by alignment to specific boundaries. Leading zeros in the input are preserved as leading '1's in the output.
How are leading zeros handled in Base58?
Leading zero bytes in the input are preserved as leading '1' characters (or the first character of the alphabet for other variants) in the Base58 output. This is important for cryptocurrency addresses where the version byte might be 0x00. During decoding, leading '1's are converted back to leading zero bytes. This ensures that addresses starting with '1' (Bitcoin) decode correctly to include the version byte.
Is Base58 more efficient than Base64?
Base58 is slightly less efficient than Base64 in terms of output size - it produces about 37% overhead versus Base64's 33%. However, Base58 is more efficient for alphanumeric-only systems and provides better human readability by avoiding ambiguous characters. The trade-off is worth it for applications where manual transcription or visual clarity is important, like cryptocurrency addresses and user-facing codes.
Is my data secure using this tool?
Absolutely! All encoding and decoding happens entirely in your browser using JavaScript with BigInt for precise base conversion. Your data is never sent to any server, uploaded anywhere, or stored remotely. Everything runs 100% locally client-side, ensuring complete privacy for sensitive data like private keys or cryptocurrency information. Remember: Base58 is encoding, not encryption - it doesn't provide security, only format conversion.