FAQ
Short answers for wallet teams deciding whether to leave embedded mwebd. The guides in the repositories stay the source of truth.
Product
What is Litecoin Dev Kit?
Litecoin Dev Kit is a Litecoin port of Bitcoin Dev Kit. Privacy is MWEB: peg in, send on the extension block, peg out. The desktop wallet is the Rust product reference for that port. Litecoin Dev Kit is not Lightning Dev Kit.
Is it production-ready?
Desktop wallet v0.4.13 is a prototype. The Rust crates are the product reference; mobile bindings are experimental. None of it has been independently audited.
Do I need litecoind?
Only for Privacy self-spend. That flow watches the MWEB mempool through Litecoin RPC, so “Spend to self” needs a working local litecoind URL under Connection. Transparent sync still uses Electrum, and Privacy sync still uses LIP-0006 peers. Send, Receive, and Swap do not require a full node.
Adoption
How does it compare to embedding mwebd?
Do not ship mwebd inside the app binary. The in-process Go runtime comes out. Keys, the MWEB coin database, transaction construction, and LIP sync move into the Litecoin Dev Kit stack. mwebd may remain an external server-side indexer.
Authoring uses the maps-first calls prepare_mweb_pegin, fund_mweb_send, fund_mweb_pegout, and sign_and_extract_funded_mweb. Those calls replace an opaque mw_tx blob.
The role map is in MIGRATE_FROM_MWEBD.md (opens in a new tab).
I am embedding mwebd. Where do I start?
Read MIGRATE_FROM_MWEBD.md (opens in a new tab) before ADOPTION.md (opens in a new tab). Do not dual-embed the Go runtime and Litecoin Dev Kit in one binary.
Build a replacement, run the guide’s acceptance checks, then remove the gomobile artifact from the app and CI. The guide holds that check table.
Which path should I take?
A Rust wallet, desktop app, or server uses bdk_wallet on the Litecoin branch of bdk with the mweb feature. The desktop wallet is the product reference for that path.
iOS, macOS, or Android without Rust in-process uses bdk-ffi on the litecoin-mweb branch.
Pins and the full split are in ADOPTION.md (opens in a new tab). The docs page restates the choice.
Runtime
How was this validated?
The Litecoin branch’s always-on BDK suite (cargo test --all-features) passes. Validation also uses ltcd-derived golden fixtures under crates/mweb/tests/fixtures/ (regenerated by scripts/ltcd_mweb_fixtures) plus regtest, testnet, and mainnet round-trips documented in TEST_EVIDENCE.md (opens in a new tab) and REVIEWERS_GUIDE.md (opens in a new tab). This site does not copy those fixtures.
Where does MWEB state live, and how does sync work?
MWEB coins live in a separate MwebStore (mweb.db or SQLite), beside the transparent wallet. They stay out of the transparent wallet changeset. Persist SyncState (mweb_sync.json) so later syncs download only added leaves.
The first sync, on an empty SyncState, downloads the full tip leafset and is slow. Transparent sync stays on Electrum, Esplora, or RPC.
The persist model is in MIGRATE_FROM_MWEBD.md (opens in a new tab).
Where are the source-of-truth docs and pins?
ADOPTION.md (opens in a new tab) is the source of truth for pins. This site does not copy that pin table. The docs page links the current guides: ADOPTION.md (opens in a new tab), MIGRATE_FROM_MWEBD.md (opens in a new tab), PORTING.md (opens in a new tab), and the desktop wallet docs.