[#miniscript]
= miniscript
:mrdocs:

Miniscript&colon; a structured representation of Bitcoin Scripts&period;

== Description

Provides the node types, the fragment&sol;Type type system, and the availability enums used to build, analyze, and satisfy Miniscript expressions under the P2WSH and Tapscript contexts&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:miniscript/Node.adoc[`Node`] 
| A node in a miniscript expression&period;
| xref:miniscript/Type.adoc[`Type`] 
| This type encapsulates the miniscript type system properties&period;
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:miniscript/Opcode.adoc[`Opcode`] 
| A single script opcode together with any immediate data it pushes&period;
|===


== Enums

[cols="1,4"]
|===
| Name| Description
| xref:miniscript/Availability.adoc[`Availability`] 
| Three&hyphen;valued result for whether a satisfaction or dissatisfaction is available&period;
| xref:miniscript/Fragment.adoc[`Fragment`] 
| The different node types in miniscript&period;
| xref:miniscript/MiniscriptContext.adoc[`MiniscriptContext`] 
| The script context a Miniscript is used under&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:miniscript/Compare.adoc[`Compare`] 
| Compare two miniscript subtrees, using a non&hyphen;recursive algorithm&period;
| xref:miniscript/ForEachNode.adoc[`ForEachNode`] 
| Unordered traversal of a miniscript node tree&period;
| xref:miniscript/FromScript.adoc[`FromScript`] 
| Decodes a Miniscript from a Bitcoin Script&period;
| xref:miniscript/FromString.adoc[`FromString`] 
| Parses a Miniscript from its textual (policy&hyphen;language) representation&period;
| xref:miniscript/IsTapscript.adoc[`IsTapscript`] 
| Whether the context Tapscript, ensuring the only other possibility is P2WSH&period;
| xref:miniscript/operator_mst.adoc[`operator&quot;&quot;&lowbar;mst`] 
| The only way to publicly construct a Type is using this literal operator&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
