Skip to main content
Every Kronex block pays four kinds of recipient:
  1. the sealer that found the kHeavyHash solution,
  2. uncles, at a reduced rate,
  3. the workshares included in that block,
  4. everyone above again, through their share of the block’s priority-fee pool.
krnx_getBlockReward returns the whole breakdown for one block: per-recipient amounts, group totals, and the pool split layered on top.

The reward curve

Rewards are not a flat subsidy. Two curves are in play, both configured by the same governance-controlled parameter set:
  • Block reward interpolates between rMin and rMax as block difficulty moves from difficultyFloor to difficultyCap.
  • Workshare reward interpolates between a per-parent-chain rMin and rMax as the hashes represented by the share move from floorHashes to capHashes.
Both use a logarithmic weight, curveLogWeightBps, so the curve can be tuned between linear and strongly log-shaped without changing its endpoints. Because the workshare curve is per parent chain, SHA256d and Equihash work can be priced differently while both remain accepted. A stale proof is discounted rather than rejected, by stalePenaltyNumerator / stalePenaltyDivisor. Read the parameters in force at any height with krnx_getRewardParams.

Lockups

Rewards do not land as spendable balance. They are locked, and the unlock is time-based:
That is 14 days on mainnet and 5 minutes on testnet. Per-address aggregates come from krnx_getLockedBalance; the indexed schedule of individual future unlocks comes from krnx_getRewardSchedule. Locked coins are why there are two supply figures: Both need the state at the requested block, so historical queries want an archive node.

Changing the parameters

Reward parameters are versioned and updated through a signed governance transaction, not a hard fork. Each update carries a version, an activation height and a signature set, and only takes effect at the height it names. Updates that have been accepted but have not activated yet are public: read them with krnx_getQueuedRewardParamsUpdates, and the parameters actually in force at any height with krnx_getRewardParams.