Hey folks,

I know this question is pretty much similar to the one, that was asked 5 years ago. I'd like to share my research and ask, if there are any movements in this fields since then? Or maybe workarounds?

So, basically, the basic answer is no, because Bitcoin Script just have control over restricting/allowing to spend particular input and by design it has no knowledge of outputs, current transaction might hold.

One workaround was to add OP_CHECKTEMPLATEVERIFY, that will check transaction hash of current transaction against the one, that was in the script on creation. That way, you can be sure, that output is fixed against certain template. As of time of writing, it is merged in bitcoin-inquisition:24.0 and not available on Mainnet (unless I miss something).

As for OP_CONSTRAINDESTINATION, it is even not implemented, just proposal somewhere without any movement.

Another proposal was to generate PK of receiver and somehow encode and share, but it requires trusted setup, that makes the whole idea pointless.

Do you know any recent advancement in this field, that I might miss in my analysis, that might help restrict output of transaction from Bitcoin Script?


1 Answer 1


Being able to express in a coin's Script conditions about the outputs of a transaction spending this coin is usually referred to as a covenant. This has been a field of active research for the past years.

The Optech website keeps a pretty good changelog of the various discussions on this topic.

  • Oh, thanks! Looks like there is no decision/agreement on this matter yet :(
    – as_ter
    Jul 21, 2023 at 15:37

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.