This repository contains a systems-level implementation of the Base58 encoding algorithm, which is a fundamental component of the Bitcoin protocol used for creating human-readable addresses (e.g., P2PKH and P2SH).
Unlike standard Base64, Bitcoin's Base58 alphabet excludes visually ambiguous characters to prevent errors in manual transcription:
- No 0 (zero) or O (capital o)
- No I (capital i) or l (lower-case L)
- No + (plus) or / (slash) symbols
- Zero-Byte Preservation: Correct handles leading zeros (encoded as '1' in Bitcoin).
- Modern C++: Implemented using
std::vectorandstd::stringfor memory safety. - Lightweight: Zero external dependencies (Standard Library only).
- A C++ compiler (e.g.,
g++) makeutility
- Clone the repository:
git clone [https://github.com/G-ojies/cpp-bitcoin-encoding-utils.git](https://github.com/G-ojies/cpp-bitcoin-encoding-utils.git) cd cpp-bitcoin-encoding-utils