[#ScriptError_t]
= ScriptError&lowbar;t
:mrdocs:

Error codes returned by the Bitcoin Script interpreter&period;

== Synopsis

Declared in `&lt;script&sol;script&lowbar;error&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
enum ScriptError&lowbar;t;
----

== Members

[cols="1,4"]
|===
| Name| Description
| `SCRIPT&lowbar;ERR&lowbar;OK` 
| No error&semi; the script evaluated successfully&period;
| `SCRIPT&lowbar;ERR&lowbar;UNKNOWN&lowbar;ERROR` 
| An unspecified or unclassified evaluation error occurred&period;
| `SCRIPT&lowbar;ERR&lowbar;EVAL&lowbar;FALSE` 
| The script completed but left a false value on the top of the stack&period;
| `SCRIPT&lowbar;ERR&lowbar;OP&lowbar;RETURN` 
| Execution reached an OP&lowbar;RETURN opcode, which marks the output as unspendable&period;
| `SCRIPT&lowbar;ERR&lowbar;SCRIPTNUM` 
| A script number operand was out of range or not minimally encoded&period;
| `SCRIPT&lowbar;ERR&lowbar;SCRIPT&lowbar;SIZE` 
| The script exceeded the maximum allowed byte size&period;
| `SCRIPT&lowbar;ERR&lowbar;PUSH&lowbar;SIZE` 
| A push operation exceeded the maximum allowed element size&period;
| `SCRIPT&lowbar;ERR&lowbar;OP&lowbar;COUNT` 
| The script exceeded the maximum number of non&hyphen;push opcodes&period;
| `SCRIPT&lowbar;ERR&lowbar;STACK&lowbar;SIZE` 
| The combined stack and altstack exceeded the maximum allowed size&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;COUNT` 
| A CHECKMULTISIG operation specified an invalid number of signatures&period;
| `SCRIPT&lowbar;ERR&lowbar;PUBKEY&lowbar;COUNT` 
| A CHECKMULTISIG operation specified an invalid number of public keys&period;
| `SCRIPT&lowbar;ERR&lowbar;VERIFY` 
| An OP&lowbar;VERIFY operation failed because the top stack value was false&period;
| `SCRIPT&lowbar;ERR&lowbar;EQUALVERIFY` 
| An OP&lowbar;EQUALVERIFY operation failed because the two values were not equal&period;
| `SCRIPT&lowbar;ERR&lowbar;CHECKMULTISIGVERIFY` 
| An OP&lowbar;CHECKMULTISIGVERIFY operation failed signature verification&period;
| `SCRIPT&lowbar;ERR&lowbar;CHECKSIGVERIFY` 
| An OP&lowbar;CHECKSIGVERIFY operation failed signature verification&period;
| `SCRIPT&lowbar;ERR&lowbar;NUMEQUALVERIFY` 
| An OP&lowbar;NUMEQUALVERIFY operation failed because the two numbers were not equal&period;
| `SCRIPT&lowbar;ERR&lowbar;BAD&lowbar;OPCODE` 
| The script contained an unknown or invalid opcode&period;
| `SCRIPT&lowbar;ERR&lowbar;DISABLED&lowbar;OPCODE` 
| The script used an opcode that has been disabled&period;
| `SCRIPT&lowbar;ERR&lowbar;INVALID&lowbar;STACK&lowbar;OPERATION` 
| An operation was attempted on a stack with too few elements&period;
| `SCRIPT&lowbar;ERR&lowbar;INVALID&lowbar;ALTSTACK&lowbar;OPERATION` 
| An operation was attempted on an empty altstack&period;
| `SCRIPT&lowbar;ERR&lowbar;UNBALANCED&lowbar;CONDITIONAL` 
| The script had mismatched OP&lowbar;IF&sol;OP&lowbar;ELSE&sol;OP&lowbar;ENDIF conditionals&period;
| `SCRIPT&lowbar;ERR&lowbar;NEGATIVE&lowbar;LOCKTIME` 
| A locktime value was negative&period;
| `SCRIPT&lowbar;ERR&lowbar;UNSATISFIED&lowbar;LOCKTIME` 
| The transaction&apos;s locktime or sequence did not satisfy the required value&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;HASHTYPE` 
| A signature used an invalid or undefined sighash type&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;DER` 
| A signature was not a valid strict DER encoding&period;
| `SCRIPT&lowbar;ERR&lowbar;MINIMALDATA` 
| A data push did not use the minimal possible encoding&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;PUSHONLY` 
| A scriptSig contained non&hyphen;push operations where only pushes are allowed&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;HIGH&lowbar;S` 
| A signature had a high S value, violating the low&hyphen;S requirement&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;NULLDUMMY` 
| The extra CHECKMULTISIG dummy argument was not an empty byte vector&period;
| `SCRIPT&lowbar;ERR&lowbar;PUBKEYTYPE` 
| A public key was not encoded in the required (compressed or uncompressed) form&period;
| `SCRIPT&lowbar;ERR&lowbar;CLEANSTACK` 
| The stack was not clean (held more than one element) after evaluation&period;
| `SCRIPT&lowbar;ERR&lowbar;MINIMALIF` 
| An OP&lowbar;IF&sol;OP&lowbar;NOTIF argument was not a minimal true&sol;false value&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;NULLFAIL` 
| A failed signature check did not provide an empty signature&period;
| `SCRIPT&lowbar;ERR&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;NOPS` 
| The script used an upgradable NOP that policy discourages&period;
| `SCRIPT&lowbar;ERR&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;WITNESS&lowbar;PROGRAM` 
| The script used a witness program version reserved for future upgrades&period;
| `SCRIPT&lowbar;ERR&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;TAPROOT&lowbar;VERSION` 
| The script used a Taproot leaf version reserved for future upgrades&period;
| `SCRIPT&lowbar;ERR&lowbar;DISCOURAGE&lowbar;OP&lowbar;SUCCESS` 
| The Tapscript used an OP&lowbar;SUCCESS opcode reserved for future upgrades&period;
| `SCRIPT&lowbar;ERR&lowbar;DISCOURAGE&lowbar;UPGRADABLE&lowbar;PUBKEYTYPE` 
| The script used a public key type reserved for future upgrades&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;PROGRAM&lowbar;WRONG&lowbar;LENGTH` 
| The witness program had a length invalid for its version&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;PROGRAM&lowbar;WITNESS&lowbar;EMPTY` 
| The witness for a witness program was empty&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;PROGRAM&lowbar;MISMATCH` 
| The witness did not match the committed witness program&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;MALLEATED` 
| A native witness program had a non&hyphen;empty scriptSig&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;MALLEATED&lowbar;P2SH` 
| A P2SH&hyphen;wrapped witness program had extra scriptSig data&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;UNEXPECTED` 
| Witness data was provided for a non&hyphen;witness input&period;
| `SCRIPT&lowbar;ERR&lowbar;WITNESS&lowbar;PUBKEYTYPE` 
| A witness public key was not compressed as required&period;
| `SCRIPT&lowbar;ERR&lowbar;SCHNORR&lowbar;SIG&lowbar;SIZE` 
| A Schnorr signature had an invalid length&period;
| `SCRIPT&lowbar;ERR&lowbar;SCHNORR&lowbar;SIG&lowbar;HASHTYPE` 
| A Schnorr signature used an invalid sighash type&period;
| `SCRIPT&lowbar;ERR&lowbar;SCHNORR&lowbar;SIG` 
| A Schnorr signature failed verification&period;
| `SCRIPT&lowbar;ERR&lowbar;TAPROOT&lowbar;WRONG&lowbar;CONTROL&lowbar;SIZE` 
| A Taproot control block had an invalid size&period;
| `SCRIPT&lowbar;ERR&lowbar;TAPSCRIPT&lowbar;VALIDATION&lowbar;WEIGHT` 
| The Tapscript exceeded its signature validation weight budget&period;
| `SCRIPT&lowbar;ERR&lowbar;TAPSCRIPT&lowbar;CHECKMULTISIG` 
| OP&lowbar;CHECKMULTISIG(VERIFY) was used in Tapscript, where it is disallowed&period;
| `SCRIPT&lowbar;ERR&lowbar;TAPSCRIPT&lowbar;MINIMALIF` 
| A Tapscript OP&lowbar;IF&sol;OP&lowbar;NOTIF argument was not a minimal true&sol;false value&period;
| `SCRIPT&lowbar;ERR&lowbar;TAPSCRIPT&lowbar;EMPTY&lowbar;PUBKEY` 
| A Tapscript signature check used an empty public key&period;
| `SCRIPT&lowbar;ERR&lowbar;OP&lowbar;CODESEPARATOR` 
| OP&lowbar;CODESEPARATOR was used where it is not permitted&period;
| `SCRIPT&lowbar;ERR&lowbar;SIG&lowbar;FINDANDDELETE` 
| A signature was found in the scriptCode subject to FindAndDelete&period;
| `SCRIPT&lowbar;ERR&lowbar;ERROR&lowbar;COUNT` 
| Sentinel value equal to the number of defined error codes&period;
|===



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