Base58, the encoding behind Bitcoin addresses
Base58 writes bytes using 58 characters: the digits and letters, minus four that are easy to mix up when read or copied by hand. The digit 0, capital O, capital I and lowercase l are all left out, and there are no + or / symbols. Satoshi Nakamoto introduced it for Bitcoin so that addresses could be double-click selected, typed and read without mistakes.
It is now used well beyond Bitcoin: Solana and many other blockchains use it for addresses and transaction signatures, and IPFS uses it for content identifiers. This tool encodes text to Base58 and decodes Base58 back to text, or to hex bytes for binary data such as addresses and keys.
How to use it
- Choose a direction: Encode to Base58 or Decode from Base58.
- When decoding, choose the output: Text (UTF-8) for encoded text, or Hex bytes for addresses, keys and hashes.
- Paste the address, key or text into the input box; the result appears as you type.
- Copy the result. An invalid character is reported by name, so you can find a typo quickly.
Example: a Bitcoin address, decoded
1BoatSLRHtKNngkdXEeobR76b53LETtpyT
007680adec8eabcabac676be9e83854ade0bd22cdb0bb960de
The 34-character address holds 25 bytes: a version byte 00 (a classic Bitcoin address), the 20-byte hash of a public key, and a 4-byte checksum at the end.
How Base58 differs from Base64
Base64 cuts the input into fixed 6-bit groups. Base58 cannot do that, because 58 is not a power of two, so it treats the whole input as one big number and repeatedly divides it by 58. That makes it slower on long inputs, which is why it is used for short values like addresses and IDs rather than for files.
Leading zero bytes would vanish in a plain number, so Base58 writes each one as the character 1. That is why every classic Bitcoin address, which starts with a zero version byte, begins with a 1.
Base58Check and the checksum
Bitcoin addresses use Base58Check: before encoding, four bytes of a double SHA-256 hash are appended to the data. A wallet recomputes them when you paste an address, so a single mistyped character is almost always caught before money is sent. This tool shows those checksum bytes as the last eight hex digits but does not verify them; use your wallet for that.
Newer Bitcoin addresses starting with bc1 use a different encoding called Bech32, and Ethereum addresses are plain hex starting with 0x, so neither decodes here.
Questions
Is a Base58 address private?
No. Addresses and transaction IDs are public by design. Never paste a private key or seed phrase into any website, including this one.
Why does Text mode show an error for an address?
Addresses and keys are binary data, not text, so they are not valid UTF-8. Switch the decoded output to Hex bytes.
Is Base58 the same in every system?
Bitcoin, Solana and IPFS share the alphabet used here. Ripple uses its own Base58 alphabet with a different order, which this tool does not support.