coins
is a set of transaction construction libraries for UTXO-based
chains. It aims to provide high-quality tooling for constructing
transactions, and to enable use in the browser via wasm-bindgen
.
- install rustup
- Run all the tests
$ ./build.sh
- build the docs:
$ cargo rustdoc
The project is built around the coins-core
crate which defines high-level
traits and interfaces. Chain-specific libraries use these traits to provide
a consistent developer experience across chains.
We have provided a bitcoins
crate with a Bitcoin-targeted implementation. See
its documentation for usage instruction and details. We have also provided wasm
bindings to bitcoins
via wasm-bindgen
.
bitcoins-bip32
provides tooling for BIP32 HDKey derivationbitcoins-psbt
implements the BIP174 partially-signed transaction format.bitcoins-provider
gives a simple consistent interface to chain data with swappable backends.
If building a Rust app, use bitcoins
in the ./bitcoins/
directory. If
building for a browser, use bitcoins-wasm
in the ./bitcoins-wasm/
directory.
Once there, you can build and view the documentation using
$ cargo rustdoc --open
.
While this is feature-complete, and there are some tests, much of it is alpha software. There will be rough edges, and the interfaces are subject to change.
Specificallly:
core
andbitcoins
are relatively stable.bitcoins-wasm
is usable, but somebitcoin
functionality is not yet exposed.provider
is working, but does not yet have thorough integration testingbip32
- wasm features are awaiting parity secp version bump.
- libsecp (default) features are RC1.
- the backends will eventually be broken into a separate module.
psbt
is early alpha.
Some work in the ledger
crate is reproduced under the APACHE 2.0 license. See
the readme for documentation