Base58Check Encoder (with Checksum)

Base58 + 4-byte SHA256d checksum — Bitcoin address format

Ad placeholder (leaderboard)

Base58Check is the encoding behind Bitcoin addresses and WIF private keys. It wraps a raw payload with a built-in error-detecting checksum so that a single mistyped character makes the whole string invalid rather than silently pointing somewhere else. This tool takes a hex payload and produces the exact Base58Check string.

How it works

Encoding happens in two stages. First the checksum:

hash      = SHA256(SHA256(payload))
checksum  = hash[0..4]          (first 4 bytes)
extended  = payload || checksum

Then the extended byte array is converted to Base58 using the Bitcoin alphabet 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. The conversion is repeated division of the big integer by 58, and every leading 0x00 byte is emitted as a leading 1.

Example and notes

The payload 00010966776006953d5567439e5e39f86a0d273bee (a version byte plus a 20-byte public-key hash) encodes to 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM, the canonical worked example from the Bitcoin wiki. To build a mainnet address, prefix a RIPEMD160(SHA256(pubkey)) hash with the version byte 0x00; for a WIF private key use version 0x80. The leading 1 you see in the output comes directly from that 0x00 version byte.

Ad placeholder (rectangle)