As we know, we can find a value expected_reward in a response of a request getblocktemplate to a monerod.

Following the documentation:

expected_reward - unsigned int; Coinbase reward expected to be received if block is successfully mined.

I have a couple of questions here:

  1. Can be the expected_reward value of potentially new block can be differ to a actual block reward after it was mined and confirmed?
  2. How is a expected_reward value obtained? Did I understand correctly that the answer to this question is written here and here?

1 Answer 1


1) So long as you don't edit the block template returned (i.e. you don't add a load more data or change the transactions included), expected_reward is what you would receive if you mined a block based on that template.

If you added or removed transactions, the fees collected would obviously change. If you changed the overall size of the block (added more data to extra for example), the reward calculation could be affected (e.g. the penalty fee could kick-in).

2) The links you referenced are both outdated (2017). Please see this answer, which references newer information.

  • I would like to clarify about the first point. You mean by “change the transactions included” if another transaction is added to the list of transactions or one of the transactions changes?
    – Andrei
    May 16, 2020 at 14:05
  • If I ask for a block template with a 4-bytes reserved size. And I will change these 4 bytes per workers using, for example, /dev/random (as you suggested here monero.stackexchange.com/questions/12201/…). Will the block reward per worker be the same as expected_reward from my rpc request (which I did only once)? I request a block template with only 4 reserved bytes and only modify them.
    – Andrei
    May 16, 2020 at 14:16
  • “change the transactions included” < If you added/removed txs, the fees would change. If you added a significant amount of data (to say the miner tx extra), the reward may get affected by penalty fee.
    – jtgrassie
    May 16, 2020 at 18:19
  • "If I ask for a block template with a 4-bytes reserved size" < 4 bytes would be highly unlikely to change the reward. And in any case, as you requested those 4 bytes they are already factored into the expected_reward, so as long as you don't add more bytes, the expected_reward will not change.
    – jtgrassie
    May 16, 2020 at 18:20

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.