[#miniscript-Node-Satisfy]
= xref:miniscript.adoc[miniscript]::xref:miniscript/Node.adoc[Node]::Satisfy
:relfileprefix: ../../
:mrdocs:

Produce a witness for this script, if possible and given the information available in the context&period; The non&hyphen;malleable satisfaction is guaranteed to be valid if it exists, and ValidSatisfaction() is true&period; If IsSane() holds, this satisfaction is guaranteed to succeed in case the node&apos;s conditions are satisfied (private keys and hash preimages available, locktimes satisfied)&period;

== Synopsis

Declared in `&lt;script&sol;miniscript&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename Ctx&gt;
xref:miniscript/Availability.adoc[Availability]
Satisfy(
    Ctx const& ctx,
    std::vector&lt;std::vector&lt;unsigned char&gt;&gt;& stack,
    bool nonmalleable = true) const;
----

== Return Value

The availability of the requested satisfaction&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *ctx*
| Context providing the satisfaction data (keys, preimages, timelocks)&period;
| *stack*
| Output witness stack that receives the produced satisfaction&period;
| *nonmalleable*
| Whether to require a nonmalleable, signature&hyphen;backed satisfaction&period;
|===


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