Build Litecoin wallets that can send privately.
A Litecoin port of Bitcoin Dev Kit. Privacy is MWEB: peg in, send on the extension block, peg out.
Litecoin Dev Kit (LDK). Every crate keeps its
bdk_*name and itsbitcoin::paths, but thebitcoindependency is aliased to thelitecoincrate, so those paths resolve to Litecoin types. Upstream owns thebdk_*names on crates.io, so consume this fork by git revision.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. Show Core / ltcsuite how we tested: docs/TEST_EVIDENCE.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 Litecoinbitcoincore-rpc0.19). MWEB is spendable throughbdk_mwebandbdk_walletmwebfeature. Regtest useslitecoind(+ optionalelectrs-ltc).
These libraries are the Litecoin Dev Kit components for descriptor-based wallets and other applications. They are a port of Bitcoin Dev Kit, built on the litecoin crate and rust-miniscript.
The workspace in this repository contains several crates in the /crates directory:
| Sub-Directory | Description |
|---|---|
chain |
Tools for storing and indexing chain data. |
core |
A collection of core structures used by bdk_chain, bdk_wallet, and this repo's chain data source crates. |
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. |
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. |
bitcoind_rpc |
Extends Litecoin-aliased bitcoincore-rpc (vendored under vendor/bitcoincore-rpc) for emitting chain data from litecoind RPC. |
file_store |
Persistence backend for storing chain data in a single file. Intended for testing and development purposes, not for production. |
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.
To report a security issue, please refer to the security policy.
These crates maintain 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. The MSRV only covers building the libraries; tests and examples need the toolchain in rust-version.
bdk_corebdk_chainbdk_esplorabdk_file_storebdk_electrumbdk_mwebbdk_bitcoind_rpcbdk_testenv
This project has a justfile for easy command running. You must have just installed.
To see a list of available recipes: just
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
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.