BuildSystem ArchitectureRewards & Incentives

Rewards & Incentives

Tangle separates service fees (paid by customers) from incentives (TNT budgets funded explicitly).

Incentives flow for service fees and TNT budgets

Service fees split through Payments.sol; TNT budgets flow through InflationPool, RewardVaults, and ServiceFeeDistributor.

Claim paths: staker fees + staker inflation via ServiceFeeDistributor, TNT staking incentives via RewardVaults, and operator/customer/developer TNT via InflationPool.

Code references: Payments.sol, ServiceFeeDistributor.sol, InflationPool.sol, RewardVaults.sol, TangleMetrics.sol

Service Fee Split (Developer / Protocol / Operator / Stakers)

When a service pays a fee, Payments.sol calculates and routes the split:

  • Developer payment (blueprint owner or manager override)
  • Protocol payment (treasury)
  • Operator rewards (pending claims)
  • Staker share (via ServiceFeeDistributor, when configured)

Staker Distribution (USD-weighted)

ServiceFeeDistributor accounts for:

  • Delegation score (principal × lock multiplier)
  • Optional USD weighting (oracle-enabled)
  • Blueprint selection mode (All vs Fixed)

Inflation-Funded Incentives (TNT)

InflationPool is a budgeted, pre-funded source of TNT incentives:

  • Staking portion is distributed to RewardVaults and paid to delegators (with operator commission).
  • Operator / Customer / Developer portions accrue as pending TNT balances and are claimed from InflationPool.
  • Staker portion (if stakersBps > 0) is distributed by service exposure and routed through ServiceFeeDistributor.

This keeps incentives explicit and avoids hidden inflation.

How To Integrate

If you are building on top of this system, the safe default flows are:

  • Use Tangle for service payments and let Payments.sol route splits.
  • Read staker fee rewards from ServiceFeeDistributor (or let users claim directly).
  • Read TNT incentives from RewardVaults, and optional staker inflation from ServiceFeeDistributor.

Example: Fee Split And Staker Payout

Service pays 10 ETH with a 20/20/40/20 split:

  • 2 ETH to developer, 2 ETH to treasury, 4 ETH to operators, 2 ETH to stakers.
  • Staker share goes to ServiceFeeDistributor, where delegators earn by score and blueprint selection.

Code + Tests

  • Split logic: src/v2/core/Payments.sol
  • Staker distribution: src/v2/rewards/ServiceFeeDistributor.sol
  • Inflation budgets: src/v2/rewards/InflationPool.sol
  • Staking incentives: src/v2/rewards/RewardVaults.sol
  • Tests:
    • test/v2/tangle/Payments.t.sol
    • test/v2/rewards/ServiceFeeDistributor.t.sol
    • test/v2/rewards/ServiceFeeDistributorStreaming.t.sol
    • test/v2/Rewards.t.sol
    • test/v2/InflationPool.t.sol

Optional TNT Incentives

The “inflation” surface is intentionally budget-driven: TNT incentives are funded by explicit budgets rather than assuming continuous minting.