[#script_verify_flag_name]
= script&lowbar;verify&lowbar;flag&lowbar;name
:mrdocs:

Names of the individual SCRIPT&lowbar;VERIFY&lowbar;&ast; verification flags (forward declaration)&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
enum class script&lowbar;verify&lowbar;flag&lowbar;name : uint8&lowbar;t;
----

== Members

[cols="1,4"]
|===
| Name| Description
| `SCRIPT&lowbar;VERIFY&lowbar;P2SH` 
| Evaluate P2SH subscripts (BIP16)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;STRICTENC` 
| Passing a non&hyphen;strict&hyphen;DER signature or one with undefined hashtype to a checksig operation causes script failure&period; Evaluating a pubkey that is not (0x04 &plus; 64 bytes) or (0x02 or 0x03 &plus; 32 bytes) by checksig causes script failure&period; (not used or intended as a consensus rule)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;DERSIG` 
| Passing a non&hyphen;strict&hyphen;DER signature to a checksig operation causes script failure (BIP62 rule 1)
| `SCRIPT&lowbar;VERIFY&lowbar;LOW&lowbar;S` 
| Passing a non&hyphen;strict&hyphen;DER signature or one with S &gt; order&sol;2 to a checksig operation causes script failure (BIP62 rule 5)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;NULLDUMMY` 
| verify dummy stack item consumed by CHECKMULTISIG is of zero&hyphen;length (BIP62 rule 7)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;SIGPUSHONLY` 
| Using a non&hyphen;push operator in the scriptSig causes script failure (BIP62 rule 2)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;MINIMALDATA` 
| Require minimal encodings for all push operations (OP&lowbar;0&period;&period;&period; OP&lowbar;16, OP&lowbar;1NEGATE where possible, direct pushes up to 75 bytes, OP&lowbar;PUSHDATA up to 255 bytes, OP&lowbar;PUSHDATA2 for anything larger)&period; Evaluating any other push causes the script to fail (BIP62 rule 3)&period; In addition, whenever a stack element is interpreted as a number, it must be of minimal length (BIP62 rule 4)&period;
| `SCRIPT&lowbar;VERIFY&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;NOPS` 
| Discourage use of NOPs reserved for upgrades (NOP1&hyphen;10)
| `SCRIPT&lowbar;VERIFY&lowbar;CLEANSTACK` 
| Require that only a single stack element remains after evaluation&period; This changes the success criterion from &quot;At least one stack element must remain, and when interpreted as a boolean, it must be true&quot; to &quot;Exactly one stack element must remain, and when interpreted as a boolean, it must be true&quot;&period; (BIP62 rule 6) Note&colon; CLEANSTACK should never be used without P2SH or WITNESS&period; Note&colon; WITNESS&lowbar;V0 and TAPSCRIPT script execution have behavior similar to CLEANSTACK as part of their consensus rules&period; It is automatic there and does not need this flag&period;
| `SCRIPT&lowbar;VERIFY&lowbar;CHECKLOCKTIMEVERIFY` 
| Verify CHECKLOCKTIMEVERIFY
| `SCRIPT&lowbar;VERIFY&lowbar;CHECKSEQUENCEVERIFY` 
| support CHECKSEQUENCEVERIFY opcode
| `SCRIPT&lowbar;VERIFY&lowbar;WITNESS` 
| Support segregated witness
| `SCRIPT&lowbar;VERIFY&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;WITNESS&lowbar;PROGRAM` 
| Making v1&hyphen;v16 witness program non&hyphen;standard
| `SCRIPT&lowbar;VERIFY&lowbar;MINIMALIF` 
| Segwit script only&colon; Require the argument of OP&lowbar;IF&sol;NOTIF to be exactly 0x01 or empty vector
| `SCRIPT&lowbar;VERIFY&lowbar;NULLFAIL` 
| Signature(s) must be empty vector if a CHECK(MULTI)SIG operation failed
| `SCRIPT&lowbar;VERIFY&lowbar;WITNESS&lowbar;PUBKEYTYPE` 
| Public keys in segregated witness scripts must be compressed
| `SCRIPT&lowbar;VERIFY&lowbar;CONST&lowbar;SCRIPTCODE` 
| Making OP&lowbar;CODESEPARATOR and FindAndDelete fail any non&hyphen;segwit scripts
| `SCRIPT&lowbar;VERIFY&lowbar;TAPROOT` 
| Taproot&sol;Tapscript validation (BIPs 341 &amp; 342)
| `SCRIPT&lowbar;VERIFY&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;TAPROOT&lowbar;VERSION` 
| Making unknown Taproot leaf versions non&hyphen;standard
| `SCRIPT&lowbar;VERIFY&lowbar;DISCOURAGE&lowbar;OP&lowbar;SUCCESS` 
| Making unknown OP&lowbar;SUCCESS non&hyphen;standard
| `SCRIPT&lowbar;VERIFY&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;PUBKEYTYPE` 
| Making unknown public key versions (in BIP 342 scripts) non&hyphen;standard
| `SCRIPT&lowbar;VERIFY&lowbar;END&lowbar;MARKER` 
| Constants to point to the highest flag in use&period; Add new flags above this line&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:operator_bitor-08.adoc[`operator&verbar;`]
| Bitwise OR of two flag names&period;
| xref:operator_bitnot.adoc[`operator&#126;`]
| Bitwise complement of a single flag name&period;
|===


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