Base58 Address Encoder
Encode hex or text to Base58 or Base58Check and decode it back. Base58Check shows the version byte, the payload and whether the 4-byte checksum matches. How it works
Use the Base58 Address Encoder
Up to 1,024 bytes.
Base58 result
Plain Base58: the bytes and nothing else. No version byte, no checksum. Solana addresses and IPFS CIDv0 strings are plain Base58.
About the Base58 Address Encoder
Base58 writes bytes with 58 characters, 1-9, A-Z and a-z without 0, O, I and l, so the hex 626262 (the text bbb) encodes to a3gV. Base58Check, the form Bitcoin addresses use, puts a version byte in front and adds the first 4 bytes of SHA-256(SHA-256(version + payload)) as a checksum, so a mistyped character is caught. The tool encodes any bytes to either form and decodes them back; it does not create addresses from keys.
Plain Base58 of some bytes
| Hex | Base58 |
|---|---|
| 61 | 2g |
| 626262 | a3gV |
| 636363 | aPEr |
| 000001 | 112 |
| 00000000000000000000 | 1111111111 |
| 48656c6c6f20576f726c64 | JxF12TrwUP45BMd |
Each leading zero byte becomes one leading 1.
Bitcoin wiki examples decoded as Base58Check
| String | Version byte | Payload bytes | Named by the tool as |
|---|---|---|---|
| 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | 00 | 20 | Bitcoin mainnet pay-to-public-key-hash (P2PKH) address |
| 17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem | 00 | 20 | Bitcoin mainnet pay-to-public-key-hash (P2PKH) address |
| 3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX | 05 | 20 | Bitcoin mainnet pay-to-script-hash (P2SH) address |
| 5Hwgr3u458GLafKBgxtssHSPqJnYoGrSzgQsPwLFhLNYskDPyyA | 80 | 32 | Bitcoin mainnet private key in WIF |
| L1aW4aubDFB7yfras2S1mN3bqg9nwySY8nkoLmJebSLD5BWv3ENZ | 80 | 33 | Bitcoin mainnet private key in WIF |
| mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn | 6f | 20 | Bitcoin testnet P2PKH address |
| 2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc | c4 | 20 | Bitcoin testnet P2SH address |
| 92Pg46rUhgTT7romnV7iGW6W1gbGdeezqdbJCzShkCsYNzyyNcc | ef | 32 | Bitcoin testnet private key in WIF |
| cNJFgo1driFnPcBdBX8BrJrpxchBWXwXCvNH5SoSkdcF6JXXwHMm | ef | 33 | Bitcoin testnet private key in WIF |
The first string is the genesis block reward address; the others are the examples in the Bitcoin wiki's list of address prefixes. Every checksum matches. A version byte outside this list is shown without a name.
Building an address step by step (Bitcoin wiki example)
| Step | Value |
|---|---|
| Payload: the 20-byte hash of the public key | f54a5851e9372b87810a8e60cdd2e7cfd80b6e31 |
| Version byte (mainnet) | 00 |
| Checksum: first 4 bytes of SHA-256(SHA-256(version + payload)) | c7f18fe8 |
| Base58Check result | 1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs |
Frequently asked questions
- How do I decode a Bitcoin address to hex?
- Choose Decode Base58, switch the scheme from Base58 (raw bytes) to Base58Check, then paste the address. For 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa the tool shows version byte 00, the 20-byte payload 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 and the checksum c29b7d93, which matches. Copy version + payload hex copies 0062e907b15cbf27d5425399ebf6f0fb50ebb88f18.
- What is the difference between Base58 and Base58Check?
- Plain Base58 is the bytes and nothing else. Base58Check adds one version byte in front and a 4-byte checksum at the end, the first 4 bytes of a double SHA-256 of version and payload, so a mistyped character is caught. Bitcoin addresses use Base58Check; Solana addresses and IPFS CIDv0 strings are plain Base58.
- What happens if one character of an address is wrong?
- The checksum no longer matches. 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNb, with the last letter changed, carries the checksum c29b7d94 while c29b7d93 is expected, so the tool says it does not match and does not name the version byte.
- Why does Base58 leave out 0, O, I and l?
- They look alike in some fonts. The Bitcoin wiki quotes the comment in the original Bitcoin client that gives this reason. A pasted 0, O, I or l is reported as not a Base58 character.
- Can it decode a Solana address?
- Yes, as plain Base58: a Solana address decodes to 32 bytes, and the tool notes that 32 bytes is the size of a Solana address and of a SHA-256 hash. Plain Base58 has no checksum, so there is nothing to verify and the tool gives no verdict on the address.
- Can it make a Bitcoin address from a public key?
- No. An address is the Base58Check of the version byte and a 20-byte hash of the public key (SHA-256, then RIPEMD-160), and the tool does not compute that hash. Give it the 20-byte hash in hex with version 00 and it writes the address: f54a5851e9372b87810a8e60cdd2e7cfd80b6e31 gives 1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs.
Related Tools
View all toolsBase64 Converter
Encode text to Base64 or decode Base64 to text. UTF-8, standard and URL-safe alphabets, optional padding on decode, up to 250,000 characters.
URL Encoder/Decoder
Percent-encode or decode text as you type: one value with encodeURIComponent or a whole URL with encodeURI, and an option to read + as a space.
Hash Generator
Compute the MD5, SHA-1, SHA-256, SHA-384 or SHA-512 hash of text or a file and compare it with an expected checksum. The file is hashed in your browser.
CIDR Calculator
Enter an IPv4 CIDR block such as 192.168.1.0/24 for its IP range, netmask, broadcast address and usable hosts, split it into subnets or turn a range into CIDR.
HTML Entity Encoder
Encode text to HTML entities (& < > " ') or decode any of the 2,231 named references in the HTML standard and numeric ones such as é.
IP Address Viewer
See the public IP address your connection uses, with the approximate city, region, country and provider from ipapi.co, or look up any IPv4 or IPv6 address.