# Bitcoin base58 encoding This crate provides encoding and decoding of base58 strings as defined by the Bitcoin ecosystem including the checksum. There are a bunch of crates on crates.io that implement base58 encoding and decoding. The more obviously named ones differ from this crate because: 1. [bitcoin-base58](https://crates.io/crates/bitcoin-base58) is transpiled from the C++ code in Bitcoin Core as part of a large long-term transpilation project, whereas this crate is a pure Rust implementation intended to be production-ready and to provide an Rust-idiomatic API. 2. [base58](https://crates.io/crates/base58) implements parsing but does not validate checksums (see `base58check`). It may be appropriate in cases where performance is more important than safety. Appears unmaintained. 3. [base58check](https://crates.io/crates/base58check) Adds checksum to the `base58` crate and depends on [sha2](https://crates.io/crates/sha2/0.8.2) for hashing. Appears unmaintained. This crate uses [bitcoin_hashes](https://crates.io/crates/bitcoin_hashes) when hashing to calculate the checksum. ## Minimum Supported Rust Version (MSRV) This library should always compile with any combination of features on **Rust 1.63.0**. ## Licensing The code in this project is licensed under the [Creative Commons CC0 1.0 Universal license](LICENSE). We use the [SPDX license list](https://spdx.org/licenses/) and [SPDX IDs](https://spdx.dev/ids/).