Skip to content

OP_VERIFY

INFO

Opcode number: 105
Byte representation: 0x69
Short description: Checks the top stack value. If it's 0 or an empty string, the script fails; otherwise, it continues and the value is popped.

OP_VERIFY is an opcode that allows for quick validation of conditions without explicitly ending the script. It's used to ensure certain requirements are met.

Operation

  1. Pop the top stack value.
  2. If the value is 0 or an empty string, the script immediately fails and the transaction is considered invalid.
  3. If the value is non-zero, continue executing the script, with the item now removed from the stack.

The primary use of OP_VERIFY is to verify that a certain condition holds without having to use conditional opcodes. If the condition does not hold, the script will terminate at the OP_VERIFY step.

Notes

  • The opcode can be thought of as a shorthand for OP_IF OP_DROP OP_ELSE OP_RETURN OP_ENDIF.

Examples

Example 1

In a hypothetical script where a 1 is pushed onto the stack, the following would pass verification:

shell
# ASM script
OP_1 OP_VERIFY

# Raw script
5169

# Final stack
(empty, since the 1 was popped by OP_VERIFY, but the script succeeds)

Example 2

For a script that starts by pushing 0 onto the stack, the script would fail at the verification step:

shell
# ASM script
OP_0 OP_VERIFY

# Raw script
0069

# Script result
Script fails at OP_VERIFY.