Skip to main content

Module derive

Module derive 

Source
Expand description

Address derivation (v0.32).

v0.32 replaces the v0.14-era hand-rolled 5-shape allow-list with an AST โ†’ miniscript::Descriptor converter (crate::to_miniscript::to_miniscript_descriptor) and delegates address rendering to rust-miniscript. Any BIP-388-parseable shape derives โ€” multi-leaf tap-trees, tr(NUMS, ...), sh(multi), arbitrary wsh(<miniscript>), and any tap-leaf miniscript fragment included.

Feature-gated: requires derive (default-on). Pure-codec consumers can opt out via default-features = false.

ยงWhat this module does NOT do

  • Origin path is not consulted. Origin is the path to the xpub from the master seed; address derivation starts at the xpub. The recorded origin matters for signing flows (PSBT key-source metadata), not for getting an address.
  • Master fingerprint (Fingerprints TLV) is unused for the same reason โ€” it identifies the master, not the derivation root.
  • Hardened use-site components are rejected. Hardened public derivation is forbidden by BIP 32; an xpub-only restore cannot produce addresses for a wallet whose use-site path has a hardened alternative or hardened wildcard.