2 unstable releases

Uses old Rust 2015

0.2.0 Jan 12, 2021
0.1.0 Jun 3, 2019

#120 in Cryptography

CC0 license

10K SLoC

C 7.5K SLoC // 0.1% comments Rust 1.5K SLoC // 0.0% comments GNU Style Assembly 741 SLoC // 0.1% comments Shell 160 SLoC // 0.1% comments Automake 157 SLoC

Continuous integration


rust-secp256k1-zkp is a wrapper around libsecp256k1-zkp that also re-exports all bindings from rust-secp256k1. As such, all of its types - SecretKey, Context, etc - are interoperable with the ones defined in rust-secp256k1.

In addition to everything from rust-secp256k1, this library adds type-safe Rust bindings for the following modules:

  • generators
  • range proofs
  • pedersen commitments


Contributions to this library are welcome. A few guidelines:

  • Any breaking changes must have an accompanied entry in CHANGELOG.md
  • No new dependencies, please.
  • No crypto should be implemented in Rust, with the possible exception of hash functions. Cryptographic contributions should be directed upstream to libsecp256k1.
  • This library should always compile with any combination of features on Rust 1.29.

A note on Rust 1.29 support

The build dependency cc might require a more recent version of the Rust compiler. To ensure compilation with Rust 1.29.0, pin its version in your Cargo.lock with cargo update -p cc --precise 1.0.41. If you're using secp256k1 in a library, to make sure it compiles in CI, you'll need to generate a lockfile first. Example for Travis CI:

  - if [ "$TRAVIS_RUST_VERSION" == "1.29.0" ]; then
    cargo generate-lockfile --verbose && cargo update -p cc --precise "1.0.41" --verbose;


~19K SLoC