Rewards and fees

Rewards are computed per epoch and distributed to block authors.

Reward components

  • Base reward from the block-height halving schedule.

  • Outlier penalty reduction for outlier blocks.

  • Transaction fees distributed to packing authors.

  • Burned fees removed from issued supply accounting.

Blocks marked partial invalid receive no reward.

Explicit net issuance logic

At reward settlement, native supply is adjusted by net mint:

net_issuance_epoch = total_base_reward_epoch - burnt_fee_epoch

  • If positive, total_issued increases by that delta.

  • If negative, total_issued decreases by the absolute delta.

This is why supply can be deflationary in epochs where burn exceeds mint.

Fee and burn model

Mazze tracks burned fee paths during execution and in global stats:

  • MIP-1559 burn is recorded and subtracted from issued supply.

  • Additional burn paths (for example contract-balance burn on specific destruction flows) also reduce issued supply.

Reward execution flow

  1. Consensus determines reward epoch and block set.

  2. ConsensusExecutor gathers reward execution inputs.

  3. process_rewards_and_fees computes per-block rewards and fees.

  4. Burn and mint are netted into issued-supply accounting.

  5. Results are persisted in BlockDataManager.

Key source files

  • crates/mazzecore/core/src/consensus/consensus_inner/consensus_executor/mod.rs

  • crates/mazzecore/core/src/consensus/consensus_inner/consensus_executor/epoch_execution.rs

  • crates/mazzecore/executor/src/state/state_object/reward.rs

  • crates/client/src/rpc/impls/mazze/mazze_handler.rs

Last updated

Was this helpful?