Skip to main content
2 of 3
Update link & name of file, location of source has changed. Fix source code to version 0.22 to avoid breaking in future.

You are looking for the method CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams) in validation.cpp.

CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
    int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
    // Force block reward to zero when right shift is undefined.
    if (halvings >= 64)
        return 0;

    CAmount nSubsidy = 50 * COIN;
    // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
    nSubsidy >>= halvings;
    return nSubsidy;
}

Further explanation:
nHeight is the number of blocks that have been found.
consensusParams.nSubsidyHalvingInterval are 210000 blocks, the interval of the halvings
COIN is 10^8, the number of satoshi in one bitcoin
nSubsidy finally gives the number of satoshi that the coinbase may create

Murch
  • 77.8k
  • 35
  • 190
  • 641