In Bitcoin, output Scripts are used to express the conditions by which the amount associated with the output may be spent.
Output Script Descriptors are a simple language which can be used to describe such Scripts generally and precisely. Bitcoin Output Script Descriptors are defined in a set of BIPs, the main one being bip-0380.
Miniscript is a language for writing (a subset of) Bitcoin Scripts in a structured way. It is an extension to Output Script Descriptors and is currently only defined within P2WSH context.
Miniscript permits:
Miniscript guarantees:
This library provides an implementation of Segwit-native Output Descriptors and of Miniscript (to be
used within wsh()
descriptors), with a minimal amount of dependencies.
This library is still a work in progress. It contains known bugs (in the satisfier or the Taproot-Miniscript implementation for instance) and there are probably many unknown ones. See this issue for a discussion about the state of this library.
Still, it's ready for hacking around and contributions are welcome. See the issue tracker for ideas on where to start.