#libsecp256k1 #ecdsa #bitcoin #crypto #secp256k1 #elliptic-curve


Rust bindings for Pieter Wuille’s libsecp256k1 library. Implements ECDSA for the SECG elliptic curve group secp256k1 and related utilities.

2 releases

Uses old Rust 2015

0.7.2 Dec 26, 2017
0.7.1 Nov 13, 2017

#10 in #libsecp256k1

Used in libsecp256k1-rs

CC0 license

7.5K SLoC

C 5K SLoC // 0.1% comments Rust 2K SLoC // 0.1% comments M4 131 SLoC // 0.3% comments Automake 95 SLoC Java 34 SLoC // 0.4% comments Shell 2 SLoC

Contains (obscure autoconf code, 13KB) depend/secp256k1/configure.ac

Build Status


rust-secp256k1 is a wrapper around libsecp256k1, a C library by Peter Wuille for producing ECDSA signatures using the SECG curve secp256k1. This library

  • exposes type-safe Rust bindings for all libsecp256k1 functions
  • implements key generation
  • implements deterministic nonce generation via RFC6979
  • implements many unit tests, adding to those already present in libsecp256k1
  • makes no allocations (except in unit tests) for efficiency and use in freestanding implementations

Full documentation



Rust bindings for Pieter Wuille's secp256k1 library, which is used for fast and accurate manipulation of ECDSA signatures on the secp256k1 curve. Such signatures are used extensively by the Bitcoin network and its derivatives.


~32K SLoC