Skip to content

OP_CHECKSIGVERIFY

INFO

Opcode number: 173
Byte representation: 0xad
Short description: Verify a digital signature; fail the script if it is invalid.

OP_CHECKSIGVERIFY combines the behavior of OP_CHECKSIG and OP_VERIFY. It checks whether a given signature is valid for a public key and a transaction’s sighash. If the verification fails, the entire script immediately fails. If successful, it removes the signature and public key from the stack and continues execution.

Operation

  1. Pop the top two items from the stack:
    • Signature (top)
    • Public key (second-to-top)
  2. Verify that the signature is valid for the public key and the given sighash.
  3. If valid: nothing is pushed and script evaluation continues.
  4. If invalid: script fails immediately.

Notes

  • Equivalent to OP_CHECKSIG OP_VERIFY, but more compact and efficient.
  • A failed verification results in an immediate script failure—no value is pushed to the stack.

Examples

Example 1

Typical usage in a P2PK-like script that must validate a signature:

shell
# ASM script
<sig> <pubkey> OP_CHECKSIGVERIFY

# Stack (after OP_CHECKSIGVERIFY)
(empty)  # signature verified and removed from stack

Example 2

Invalid signature results in script failure:

shell
# Stack (before OP_CHECKSIGVERIFY)
<invalid_sig> <pubkey> OP_CHECKSIGVERIFY

# Execution result
Script fails immediately, and no value is pushed to the stack.