Hex to Base58 Converter
Convert hexadecimal strings to Base58 encoding used in Bitcoin addresses, IPFS hashes, Flickr short URLs, and other compact, human-readable identifiers
Conversion Options
Base58 alphabet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Note: Excludes 0, O, I, l to avoid confusion
Example: 0x48656c6c6f → 5vc9ayq
Recommended Settings
Pro Tips
- •Base58 alphabet excludes 0, O, I, l to prevent visual confusion when reading addresses
- •Commonly used in Bitcoin/cryptocurrency addresses for compact, human-readable format
- •Leading zero bytes in hex become leading '1' characters in Base58
- •Case-sensitive encoding: preserves both uppercase and lowercase characters
Most Popular
Most users enable auto-remove 0x prefix for cleaner conversion
When to Use This Tool
Convert hexadecimal public key hashes to Base58 Bitcoin addresses (legacy format). Bitcoin uses Base58Check encoding for wallet addresses to create compact, human-readable identifiers. Essential for blockchain development, wallet applications, and cryptocurrency transaction processing. Also used in Litecoin, Dogecoin, and other Bitcoin-derived cryptocurrencies.
Encode hexadecimal IPFS content hashes (CIDs) to Base58 format for distributed file storage and content addressing. IPFS uses Base58 (specifically base58btc) for v0 CIDs to create short, shareable content identifiers. Important for decentralized applications, NFT metadata, and peer-to-peer file sharing systems.
Generate compact, URL-safe identifiers from hexadecimal data for URL shortening services like Flickr short URLs. Base58 creates shorter strings than Base64 while avoiding confusing characters (0/O, I/l). Perfect for database IDs, session tokens, and any application requiring short, readable identifiers without special URL encoding.
Convert hexadecimal transaction IDs, block hashes, and smart contract addresses to Base58 format for blockchain explorers, wallet interfaces, and development tools. Debug and verify blockchain data by converting between hex and Base58 representations. Essential for Ethereum, Bitcoin, and other blockchain platforms.
How It Works
Parse input hexadecimal strings (with or without 0x prefix)
Remove 0x prefix if present and removePrefix option is enabled
Validate hex string contains only valid characters (0-9, A-F)
Ensure even length by padding with leading zero if needed
Convert hex to byte array (2 hex digits = 1 byte)
Count leading zero bytes for Base58 '1' character preservation
Convert byte array to BigInt for arbitrary-precision arithmetic
Perform base conversion using Base58 alphabet (excluding 0, O, I, l)
Add leading '1' characters for each leading zero byte in original data
100% Private
Files never leave your device. All processing happens locally in your browser.
Lightning Fast
Powered by Pure JavaScript for optimal performance on modern browsers.
Secure
No data collection, no tracking, no sign-up required.
Frequently Asked Questions
Why does Base58 exclude 0, O, I, and l characters?
Base58 was designed to avoid visual ambiguity in human-readable identifiers. The characters 0 (zero) and O (capital o) look similar, as do I (capital i) and l (lowercase L). By excluding these four characters, Base58 prevents mistakes when manually typing or reading addresses, which is critical for cryptocurrency transactions where errors can result in permanent loss of funds.
What's the difference between Base58 and Base58Check?
Base58 is the basic encoding algorithm. Base58Check adds a checksum for error detection, commonly used in Bitcoin addresses. Base58Check = Base58(payload + checksum), where checksum is the first 4 bytes of SHA256(SHA256(payload)). This tool converts hex to plain Base58. For Bitcoin addresses with checksums, the input hex should already include the checksum bytes.
Why do Bitcoin addresses start with '1' or '3'?
The leading character indicates the address type and comes from the version byte. '1' addresses (version byte 0x00) are P2PKH (Pay-to-Public-Key-Hash) addresses. '3' addresses (version byte 0x05) are P2SH (Pay-to-Script-Hash) for multi-sig and SegWit. When the version byte 0x00 is included in the hex input, the resulting Base58 naturally starts with '1'.
How do leading zeros in hex affect Base58 output?
Each leading zero byte (0x00) in the hexadecimal input becomes a leading '1' in Base58 output. This preserves the data length and is crucial for address formats. Example: 0x0000ABCD becomes '11...' in Base58. The algorithm counts leading zero bytes separately before base conversion, then prepends the appropriate number of '1' characters to the result.
Can I use this for Ethereum addresses?
Ethereum uses hexadecimal format (0x...) with EIP-55 checksum encoding, not Base58. Ethereum addresses are 42 characters (0x + 40 hex digits). This tool is for converting hex to Base58, primarily for Bitcoin, IPFS, and similar systems that use Base58 encoding. For Ethereum, keep addresses in hex format.
Why is my Base58 output shorter/longer than expected?
Base58 length varies based on the numeric value, not just byte count. Leading zeros become '1' characters, but middle/trailing zeros affect the numeric value and can result in shorter Base58 strings. For example, 0xFF (255) encodes to '5Q', while 0x00FF (255 with leading zero) encodes to '15Q'. The encoding is compact and variable-length by design.