<p>Each miner (or mining pool) sets their own policy, but miners using <a href="https://bitcoin.org/en/release/v0.9.0" rel="noreferrer">Bitcoin Core 0.9.0</a> and later will, by default, mine <code>OP_RETURN</code> (null data) outputs with zero value.  They will not, by default, mine any other outputs with a value below the dust threshold, which is 1/3 as many satoshis as it would take to relay the output plus the corresponding input according to your node's relay fee policy.</p>

<p>For example, if your node's relay fee is 1000 satoshis per kilobyte, the output is a 36 byte <a href="https://bitcoin.org/en/developer-guide#term-p2pkh" rel="noreferrer">P2PKH</a> script, and the input that spends it is expected to be 148 bytes, then the <a href="https://github.com/bitcoin/bitcoin/commit/6a4c196dd64da2fd33dc7ae77a8cdd3e4cf0eff1#diff-279f95e952b2c1cff13bdfbcd7bc36eeR151" rel="noreferrer">minimum allowed value is 546 satoshis</a>.</p>

<p>To learn more about the default Bitcoin Core rules, you want to check its IsStandard() function which determines what transactions it accepts into its memory pool.  Bitcoin Core will mine anything in its memory pool.  The rules have changed a lot over time, so here are a few different links:</p>

<ul>
<li><p><a href="https://github.com/bitcoin/bitcoin/blob/0.9/src/main.cpp#L501" rel="noreferrer">Bitcoin Core 0.9.x latest rules</a></p></li>
<li><p><a href="https://github.com/bitcoin/bitcoin/blob/0.10/src/main.cpp#L625" rel="noreferrer">Bitcoin Core 0.10.x latest rules</a></p></li>
<li><p><a href="https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L633" rel="noreferrer">Bitcoin Core development branch latest rules</a></p></li>
</ul>

<p>(Note: the links above may not point to the right place if code gets moved around.  Just search the page displayed for "IsStandard".)</p>

CC BY-SA 3.0
2015-01-15T02:00:02.750Z
2015-01-15T02:00:02.750Z
David A. Harding
<p>Would miners generally accept a transaction that has one of its output values set to zero? Can the acceptance in this case depend also on the scriptPubKey associated with the zeroed output?</p>

<transactions><output>
Are transactions containing zero-value output accepted by miners?
knaperek
# Are transactions containing zero-value output accepted by miners?

(Asked by: username_0 on 2014-09-03)

Would miners generally accept a transaction that has one of its output values set to zero? Can the acceptance in this case depend also on the scriptPubKey associated with the zeroed output?

**Tags:** transactions, output


---

## 1 answers

### Answer by username_1 on 2015-01-15. Score: 5 | Accepted answer

Each miner (or mining pool) sets their own policy, but miners using [Bitcoin Core 0.9.0](https://bitcoin.org/en/release/v0.9.0) and later will, by default, mine `OP_RETURN` (null data) outputs with zero value. They will not, by default, mine any other outputs with a value below the dust threshold, which is 1/3 as many satoshis as it would take to relay the output plus the corresponding input according to your node's relay fee policy.

For example, if your node's relay fee is 1000 satoshis per kilobyte, the output is a 36 byte [P2PKH](https://bitcoin.org/en/developer-guide#term-p2pkh) script, and the input that spends it is expected to be 148 bytes, then the [minimum allowed value is 546 satoshis](https://github.com/bitcoin/bitcoin/commit/6a4c196dd64da2fd33dc7ae77a8cdd3e4cf0eff1#diff-279f95e952b2c1cff13bdfbcd7bc36eeR151).

To learn more about the default Bitcoin Core rules, you want to check its IsStandard() function which determines what transactions it accepts into its memory pool. Bitcoin Core will mine anything in its memory pool. The rules have changed a lot over time, so here are a few different links:

* [Bitcoin Core 0.9.x latest rules](https://github.com/bitcoin/bitcoin/blob/0.9/src/main.cpp#L501)
* [Bitcoin Core 0.10.x latest rules](https://github.com/bitcoin/bitcoin/blob/0.10/src/main.cpp#L625)
* [Bitcoin Core development branch latest rules](https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L633)

(Note: the links above may not point to the right place if code gets moved around. Just search the page displayed for "IsStandard".)


---

