<p><a href="https://bitcoin.org/en/developer-guide#coinjoin" rel="noreferrer">CoinJoin uses <code>SIGHASH_ALL</code>.</a></p>

<p>I initially found this confusing because I assumed the interface to CoinJoin a little less synchronized than it is. CoinJoin requires each participant to first specify a UTXO and a public key to pay out to. </p>

<p><em>Someone</em> then constructs a partially complete transaction which makes use of those UTXOs and pays out to the public keys specified by the participants -- this transaction is "partially complete" because it doesn't yet have signatures which unencumber the UTXOs. Each participant then signs their input with <code>SIGHASH_ALL</code>, which prevents outputs from being manipulated after the fact.</p>

CC BY-SA 3.0
2017-07-29T05:25:28.943Z
2017-07-29T05:25:28.943Z
James O'Beirne
<p>What SIGHASH flags are used when constructing a CoinJoin transaction?</p>

<coinjoin><sighash-flags>
What SIGHASH flags does CoinJoin use?
Nick ODell
# What SIGHASH flags does CoinJoin use?

(Asked by: username_0 on 2015-10-02)

What SIGHASH flags are used when constructing a CoinJoin transaction?

**Tags:** coinjoin, sighash-flags


---

## 1 answers

### Answer by username_1 on 2017-07-29. Score: 9 | Accepted answer

[CoinJoin uses `SIGHASH_ALL`.](https://bitcoin.org/en/developer-guide#coinjoin)

I initially found this confusing because I assumed the interface to CoinJoin a little less synchronized than it is. CoinJoin requires each participant to first specify a UTXO and a public key to pay out to.

*Someone* then constructs a partially complete transaction which makes use of those UTXOs and pays out to the public keys specified by the participants -- this transaction is "partially complete" because it doesn't yet have signatures which unencumber the UTXOs. Each participant then signs their input with `SIGHASH_ALL`, which prevents outputs from being manipulated after the fact.


---

