#crypto #bitcoin #segwit


A collection of helpers for signing bitcoin transactions with segwit

7 releases (breaking)

✓ Uses Rust 2018 edition

0.6.0 Apr 30, 2019
0.5.0 Mar 14, 2019
0.4.0 Nov 22, 2018
0.3.1 Aug 31, 2018
0.1.0 May 16, 2018

#50 in #bitcoin

Download history 33/week @ 2019-01-15 9/week @ 2019-01-22 22/week @ 2019-01-29 7/week @ 2019-02-05 5/week @ 2019-02-12 14/week @ 2019-02-19 11/week @ 2019-02-26 17/week @ 2019-03-05 47/week @ 2019-03-12 41/week @ 2019-03-19 167/week @ 2019-03-26 32/week @ 2019-04-02 8/week @ 2019-04-09 14/week @ 2019-04-16 46/week @ 2019-04-23

141 downloads per month
Used in 1 crate


878 lines


Travis Build Status Appveyor Build Status dependency status Docs.rs rust 1.23+ required

BTC transaction utils is a small library that helps to create multisig addresses and to swiftly sign some types of segwit transactions as well as to check the existing signatures, if required.

Manipulations with segwit transactions are quite complicated, so the main goal is to provide a simple and clear solution for the most common operations as mentioned above.


  • Creating of the redeem script, which is used in the multisignature transactions.
  • Creating and checking of the applied signatures of the p2wsh inputs.
  • Creating and checking of the applied signatures of the p2wpk inputs.

Note: This library supports only the SIGHASH_ALL type of signatures.


Some features are not implemented at the moment, but are desired in future releases. Any help in implementation of the below listed items is welcome.

  • Implement support for P2SH-P2WPKH and P2SHP2WSH inputs.
  • Implement TransactionBuilder which helps to create unsigned transactions.
  • Implement support for legacy inputs.
  • Implement universal transaction signer which can automatically detect the kind of output for the corresponding input.


Licensed under the Apache License (Version 2.0). See LICENSE for details.


~65K SLoC