How Amadeus Protocol Distributes Block Rewards: Validator, Founder, and Treasury Split Explained

Amadeus Protocol distributes block rewards through a multi-tiered mechanism that splits minted AMADEUS tokens between validators, founders, and treasury, with inflation-adjusted rates defined in the consensus layer.

In the Amadeus Protocol node implementation, block rewards are not paid to a single recipient. Instead, each successfully sealed block triggers a split allocation defined by on-chain parameters. This article breaks down the reward distribution logic found in the Rust-native consensus engine and Elixir coordination layer, showing exactly how incentives flow through the system.

Understanding the Four-Component Reward Structure

According to the source code in amadeusprotocol/node, block rewards are divided across four distinct components. Each serves a specific purpose in the protocol's tokenomics:

Component Description Source File
Validator (Block Producer) Reward Base payment to the validator that proposes and seals the block, minted directly at block finalization ex/native/rdb/src/consensus/bic/epoch.rs
Founders / Development Fee Fixed percentage directed to protocol development funding ex/native/rdb/src/consensus/bic/epoch.rs
Community / Treasury Allocation Configurable portion reserved for ecosystem grants and network upgrades ex/lib/consensus/models/consensus.ex
Slashing Redistribution Confiscated rewards from malicious validators redistributed to honest participants ex/native/rdb/src/consensus/bic/lockup_vault.rs

Block Reward Calculation in the Consensus Engine

The reward computation begins in the Rust-native consensus module. When a validator produces a block, the calculate_base_reward function determines the minting amount based on the current inflation factor.

// Rust-side: minting reward when a block is sealed
fn mint_block_reward(block: &Block) -> Result<RewardAllocation, Error> {
    let reward = calculate_base_reward(block)?;
    let founders = reward * FOUNDERS_RATE;
    let treasury = reward * TREASURY_RATE;
    let validator = reward - founders - treasury;

    Ok(RewardAllocation {
        validator,
        founders,
        treasury,
    })
}

The FOUNDERS_RATE and TREASURY_RATE constants are defined in the epoch parameters. As implemented in ex/native/rdb/src/consensus/bic/epoch.rs, these rates apply uniformly across each epoch of 100,000 blocks.

Elixir Coordination Layer for Reward Distribution

The Elixir side of the node handles higher-level reward orchestration. The Amadeus.Consensus.Reward module exposes the computation logic to the broader system:


# Example: calculating a validator's reward in the consensus engine

defmodule Amadeus.Consensus.Reward do
  @epoch_blocks 100_000
  @founders_rate 0.10   # 10% of minted reward goes to founders

  @treasury_rate 0.05   # 5% goes to the treasury

  def compute_reward(block_height) do
    inflation = current_inflation(block_height)
    base_reward = inflation * block_reward_constant()

    founders = Float.round(base_reward * @founders_rate, 2)
    treasury = Float.round(base_reward * @treasury_rate, 2)
    validator = base_reward - founders - treasury

    %{validator: validator, founders: founders, treasury: treasury}
  end
end

This module bridges the Rust-native calculations with the node's operational state, ensuring consistent reward values across the distributed system.

Epoch-Based Inflation and Parameter Adjustments

Amadeus Protocol reduces block rewards over time through a predetermined inflation curve. The schedule is enforced at epoch boundaries:

  1. Block Production — Validator seals block, triggering reward calculation
  2. Minting — AMADEUS tokens are created according to current_inflation(block_height)
  3. Split Application — Fixed percentages分配给 validator, founders, and treasury
  4. Epoch Transition — Every 100,000 blocks, inflation factor recalculates for the next epoch

The epoch.rs file contains the constants governing this schedule. The gradual reduction ensures long-term token scarcity while maintaining validator participation incentives.

Slashing and Reward Redistribution

Not all distributed rewards remain with their initial recipients. The lockup_vault.rs module implements slashing logic that affects reward flows:

  • Double-signing or equivocation triggers confiscation
  • Slashed amounts redistribute to validators who detected the misbehavior
  • Unspent rewards from offending blocks remain subject to retroactive slashing

This creates a secondary reward stream for honest validators beyond base block production.

Key Source Files for Block Reward Distribution

File Path Purpose
ex/native/rdb/src/consensus/bic/epoch.rs Epoch constants, inflation schedule, founders reward parameters
ex/lib/consensus/models/consensus.ex Treasury handling and high-level reward distribution
ex/native/rdb/src/consensus/bic/lockup_vault.rs Slashing mechanisms and reward redistribution
ex/lib/consensus/models/entry.ex Entry validation and special block handling affecting reward eligibility

Summary

  • Block rewards in Amadeus Protocol split three ways: validator payment, founders development fund, and community treasury
  • Minting occurs at block sealing through the Rust-native consensus engine in epoch.rs
  • Elixir coordination layer (consensus.ex) manages operational reward distribution
  • Inflation decreases per epoch (100,000 blocks) according to a predetermined curve
  • Slashing redistributes confiscated rewards to honest validators via lockup_vault.rs

Frequently Asked Questions

What percentage of block rewards go to founders and treasury?

Based on the source code constants in epoch.rs and the Elixir reward module, founders receive approximately 10% and treasury receives 5% of each block's minted reward. The remaining ~85% goes to the block-producing validator. These rates are configurable at epoch boundaries.

How does Amadeus Protocol prevent inflation from devaluing the token?

The protocol implements a predetermined inflation curve that reduces the minting rate at each epoch transition (every 100,000 blocks). This schedule is hardcoded in the consensus parameters found in ex/native/rdb/src/consensus/bic/epoch.rs, ensuring predictable and gradually decreasing token issuance.

Can validators lose rewards after receiving them?

Yes. Through the slashing mechanism in lockup_vault.rs, validators proven to have engaged in double-signing or equivocation can have unspent rewards confiscated retroactively. These slashed amounts are then redistributed to the validators who helped detect and prove the malicious behavior.

Where is the treasury allocation stored and how is it spent?

The treasury portion of block rewards is deposited to a multi-signature treasury address managed through the consensus model in ex/lib/consensus/models/consensus.ex. Withdrawals require consensus-approved proposals, ensuring community governance over ecosystem grants and network upgrades.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →