Big thanks to the author of this article (and its predecessor). This is probably the first time I have ever felt like I understood miniscript. I wish it included some detail and some context with how miniscript fits in with wallet descriptors.
Miniscript expressions nest in descriptors where a script is expected, for example like this:
wsh(<miniscript expression>), sh(wsh(<miniscript expression>)), or tr(key, <miniscript expression>), which would result in P2WSH/P2SH/Taproot addresses.
Miniscript's semantics and correctness rules change depending on the context, for example in Taproot, there would be no multi fragment, different limits and other changes. Currently, only expressions in the wsh(...) context are supported really. Taproot support is being worked on.
Miniscript expressions nest in descriptors where a script is expected, for example like this:
wsh(<miniscript expression>), sh(wsh(<miniscript expression>)), or tr(key, <miniscript expression>), which would result in P2WSH/P2SH/Taproot addresses.
Miniscript's semantics and correctness rules change depending on the context, for example in Taproot, there would be no multi fragment, different limits and other changes. Currently, only expressions in the wsh(...) context are supported really. Taproot support is being worked on."
wsh(<miniscript expression>)
,sh(wsh(<miniscript expression>))
, ortr(key, <miniscript expression>)
, which would result in P2WSH/P2SH/Taproot addresses.multi
fragment, different limits and other changes. Currently, only expressions in thewsh(...)
context are supported really. Taproot support is being worked on.