Skip to content
 
 

The Bitcoin Dev Kit

A suite of libraries for building modern, lightweight, descriptor-based wallets written in Rust!

MIT or Apache-2.0 Licensed CI Status Rustc Version 1.85.0+ Chat on Discord

This is a Litecoin fork of BDK (LitecoinDevKit). Every crate keeps its bdk_* name and its bitcoin:: paths, but the bitcoin dependency is aliased to the litecoin crate, so those paths resolve to Litecoin types.

Integrating a wallet? Start with docs/ADOPTION.md (Rust vs FFI, blessed pins, maps-first MWEB API). Prove it with docs/DOGFOOD_CHECKLIST.md. Port internals: PORTING.md. E2E recipes: docs/LITECOIN_E2E.md. Leaving embedded mwebd: docs/MIGRATE_FROM_MWEBD.md first.

Transparent wallets (legacy and SegWit) sync via Electrum/Esplora or bdk_bitcoind_rpc (vendored Litecoin bitcoincore-rpc 0.19). MWEB is spendable through bdk_mweb and bdk_wallet mweb feature. Regtest uses litecoind (+ optional electrs-ltc).

About

The bdk libraries aim to provide well engineered and reviewed components for Bitcoin wallets and other applications. They are built upon the excellent rust-bitcoin and rust-miniscript crates.

Architecture

The workspace in this repository contains several crates in the /crates directory:

Sub-Directory Description Badges
chain Tools for storing and indexing chain data. Chain Crate Info Chain API Docs
core A collection of core structures used by the bdk_chain, bdk_wallet, and BDK's chain data source crates. Core Crate Info Core API Docs
esplora Extends the esplora-client crate with methods to fetch chain data from an esplora HTTP server in the form that bdk_chain and Wallet can consume. Esplora Crate Info Esplora API Docs
electrum Extends the electrum-client crate with methods to fetch chain data from an electrum server in the form that bdk_chain and Wallet can consume. Electrum Crate Info Electrum API Docs
bitcoind_rpc Extends Litecoin-aliased bitcoincore-rpc (vendored under vendor/bitcoincore-rpc) for emitting chain data from litecoind RPC. BitcoinD RPC Crate Info BitcoinD RPC API Docs
file_store Persistence backend for storing chain data in a single file. Intended for testing and development purposes, not for production. File Store Crate Info File Store API Docs
mweb Litecoin MWEB: stealth keys, receive scan, coin DB, peg-in/out and MWEB→MWEB tx authoring (bdk_mweb).

The bdk_wallet repository and crate contains a higher level Wallet type that depends on the above lower-level mechanism crates.

Minimum Supported Rust Version (MSRV)

The following BDK crates maintains a MSRV of 1.85.0. To build these crates with the MSRV of 1.85.0 you will need to pin dependencies by running the pin-msrv.sh script.

  • bdk_core
  • bdk_chain
  • bdk_esplora
  • bdk_file_store
  • bdk_electrum
  • bdk_mweb
  • bdk_bitcoind_rpc

Just

This project has a justfile for easy command running. You must have just installed.

To see a list of available recipes: just

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Litecoin fork of BDK. Crates keep their bdk_* names but alias bitcoin -> litecoin; bdk_mweb adds MWEB scanning, peg-in/out and spends. Work is on the litecoin branch; see PORTING.md and docs/REVIEWERS_GUIDE.md.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages