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