Skip to content

OP_IFDUP ​

INFO

Opcode number: 115
Byte representation: 0x73
Short description: Duplicate the top stack item only if it is non-zero.

OP_IFDUP duplicates the top item on the stack if and only if it is non-zero. If the top item is zero, the stack remains unchanged.

Operation ​

  1. Check the top item on the stack.
  2. If the item is non-zero, it is duplicated (pushed onto the stack again).
  3. If the item is zero, no duplication occurs, and the stack remains unchanged.

Notes ​

  • This opcode is useful in conditional operations, where duplication occurs based on the value of the top stack item.
  • A related opcode, OP_DUP, always duplicates the top stack item, regardless of its value.

Examples ​

Example 1 ​

Duplicating a non-zero stack item:

shell
# ASM script
OP_1 OP_IFDUP

# Raw script
5173

# Stack (before OP_IFDUP)
1

# Stack (after OP_IFDUP)
1
1

Example 2 ​

No duplication of a zero stack item:

shell
# ASM script
OP_0 OP_IFDUP

# Raw script
0073

# Stack (before OP_IFDUP)
0

# Stack (after OP_IFDUP)
0 # no change