<p>For the block to be valid there must be a coinbase transaction but it is only checked that it spends at much the reward and the fees generated in the transactions included in the block. 
So it is possible to generate a valid block with a coinbase transaction spending less than the available coin and thus destroying coins forever.</p>

<p>But you can always send the reward to a random address in the hope that no one will ever be able to find it's private key and that it does not belongs to anyone.</p>

CC BY-SA 3.0
2014-01-14T15:02:52.963Z
Contradicts [this answer](http://bitcoin.stackexchange.com/a/4574/11761) which sources the [Bitcoin code](https://github.com/bitcoin/bitcoin/blob/0.6.3/src/main.cpp#L1362). You could set the script to `OP_RETURN` to make it provably unspendable or if I'm not mistaken you could just refuse to include a coinbase transaction (it's not enforced).
kaoD
CC BY-SA 3.0
2014-01-14T15:48:03.883Z
Yes it seems that the code does not check every posible situation, an unique coinbase as the first transaction of the block is enforced but there is no check if the value is less than what it should be, I will update accordingly.
frisco
CC BY-SA 3.0
2014-01-14T15:52:46.667Z
Oh, you're right! I thought coinbase wasn't enforced but apparently it is (don't know where I read it). Gotta fix my own code then :)
kaoD
CC BY-SA 3.0
2014-01-11T11:25:17.667Z
2014-01-14T15:50:44.927Z
2014-01-14T15:50:44.927Z
frisco
<p>As of 2014, miners that successfully mine a block are entitled to 25 bitcoins.</p>

<p>Can miners refuse to receive those 25 bitcoins, thereby reducing the total number of bitcoins that will ever be mined?</p>

CC BY-SA 3.0
2014-01-14T16:56:35.620Z
It's not so different from simply never using the coins. They are effectively lost and thus out of circulation.
Tim S.
CC BY-SA 3.0
2016-03-11T10:27:17.727Z
Pieter Wuille mentioned some blocks that took less than the full reward on [Will there be 21 million bitcoins eventually?](http://bitcoin.stackexchange.com/a/38998/5406).
Murch
<mining-reward><money-supply><mining-technical-details>
Can a miner refuse it's reward?
Randomblue
# Can a miner refuse it's reward?

(Asked by: username_0 on 2014-01-11)

As of 2014, miners that successfully mine a block are entitled to 25 bitcoins.

Can miners refuse to receive those 25 bitcoins, thereby reducing the total number of bitcoins that will ever be mined?

**Tags:** mining-reward, money-supply, mining-technical-details

> **Comments:**
> **username_1**: It's not so different from simply never using the coins. They are effectively lost and thus out of circulation.  
> **username_2**: Pieter Wuille mentioned some blocks that took less than the full reward on [Will there be 21 million bitcoins eventually?](http://bitcoin.stackexchange.com/a/38998/5406).  

---

## 1 answers

### Answer by username_3 on 2014-01-11. Score: 3 | Accepted answer

For the block to be valid there must be a coinbase transaction but it is only checked that it spends at much the reward and the fees generated in the transactions included in the block.
So it is possible to generate a valid block with a coinbase transaction spending less than the available coin and thus destroying coins forever.

But you can always send the reward to a random address in the hope that no one will ever be able to find it's private key and that it does not belongs to anyone.

> **Comments:**
> **username_4**: Contradicts [this answer](http://bitcoin.stackexchange.com/a/4574/11761) which sources the [Bitcoin code](https://github.com/bitcoin/bitcoin/blob/0.6.3/src/main.cpp#L1362). You could set the script to `OP_RETURN` to make it provably unspendable or if I'm not mistaken you could just refuse to include a coinbase transaction (it's not enforced).  
> **username_3**: Yes it seems that the code does not check every posible situation, an unique coinbase as the first transaction of the block is enforced but there is no check if the value is less than what it should be, I will update accordingly.  
> **username_4**: Oh, you're right! I thought coinbase wasn't enforced but apparently it is (don't know where I read it). Gotta fix my own code then :)  

---

