<p>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.</p>
<p>The Optech website keeps a pretty good <a href="https://bitcoinops.org/en/topics/covenants/" rel="nofollow noreferrer">changelog</a> of the various discussions on this topic.</p>

CC BY-SA 4.0
2023-07-21T15:37:52.953Z
Oh, thanks! Looks like there is no decision/agreement on this matter yet :(
as_ter
CC BY-SA 4.0
2023-07-21T15:28:54.627Z
2023-07-21T15:28:54.627Z
Antoine Poinsot
<p><strong>Hey folks,</strong></p>
<p>I know this question is pretty much similar to the one, that was asked <a href="https://bitcoin.stackexchange.com/questions/67339/is-it-possible-to-make-an-output-only-spendable-to-a-specific-address">5 years ago</a>. I'd like to share my research and ask, if there are any movements in this fields since then? Or maybe workarounds?</p>
<p>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.</p>
<p>One workaround was to add <code>OP_CHECKTEMPLATEVERIFY</code>, 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 <a href="https://github.com/bitcoin-inquisition/bitcoin/tree/24.0" rel="nofollow noreferrer">bitcoin-inquisition:24.0</a> and not available on Mainnet (unless I miss something).</p>
<p>As for OP_CONSTRAINDESTINATION, it is even not implemented, just proposal somewhere without any movement.</p>
<p>Another proposal was to generate PK of receiver and somehow encode and share, but it requires trusted setup, that makes the whole idea pointless.</p>
<p><strong>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?</strong></p>

CC BY-SA 4.0
2023-10-02T00:24:32.933Z
Some conversations are ongoing about Covenant-related proposals both in the bitcoin-dev mailing list and on the Delving Bitcoin forum: https://delvingbitcoin.org/c/protocol-design/7
Steven Roose
<script><spending><covenants>
Is there any workaround exist to restrict spending output address from Bitcoin Script?
as_ter
# Is there any workaround exist to restrict spending output address from Bitcoin Script?

(Asked by: username_0 on 2023-07-21)

**Hey folks,**

I know this question is pretty much similar to the one, that was asked [5 years ago](https://bitcoin.stackexchange.com/questions/67339/is-it-possible-to-make-an-output-only-spendable-to-a-specific-address). 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](https://github.com/bitcoin-inquisition/bitcoin/tree/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?**

**Tags:** script, spending, covenants

> **Comments:**
> **username_1**: Some conversations are ongoing about Covenant-related proposals both in the bitcoin-dev mailing list and on the Delving Bitcoin forum: https://delvingbitcoin.org/c/protocol-design/7  

---

## 1 answers

### Answer by username_2 on 2023-07-21. Score: 2

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](https://bitcoinops.org/en/topics/covenants/) of the various discussions on this topic.

> **Comments:**
> **username_0**: Oh, thanks! Looks like there is no decision/agreement on this matter yet :(  

---

