From BIP0342:

The opcode 186 (0xba) is named as OP_CHECKSIGADD.

What did 0xba do prior to this?

1 Answer 1


Before the Taproot soft fork the opcode 186 (0xba) was an undefined opcode. Undefined opcodes abort verification and consider the transaction to be invalid. There are also OP_NOP opcodes that are designed to be ignored (do nothing) and do not invalidate the transaction. After the Taproot soft fork the opcode 186 (0xba) was defined as OP_CHECKSIGADD. There was an additional change in the Taproot soft fork where opcodes that remained undefined (not the case for the opcode 186) were made OP_SUCCESS. From BIP 342:

If any opcode numbered 80, 98, 126-129, 131-134, 137-138, 141-142, 149-153, 187-254 is encountered, validation succeeds (none of the rules below apply). This is true even if later bytes in the tapscript would fail to decode otherwise.

  • 1
    Thanks, I think there are also some specified OP_NOPs that do not invalidate the transaction.
    – Lee
    Commented Apr 26 at 9:05
  • 1
    @Lee: Indeed, I'm getting into a muddle here (been a while since I looked at this). There used to be undefined opcodes and OP_NOPs and after Taproot there are OP_SUCCESSes and OP_NOPs (I think) :) Commented Apr 26 at 9:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.