Rewards & Incentives
Tangle separates service fees (paid by customers) from incentives (TNT budgets funded explicitly).
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
RewardVaultsand 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 throughServiceFeeDistributor.
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
Tanglefor service payments and letPayments.solroute splits. - Read staker fee rewards from
ServiceFeeDistributor(or let users claim directly). - Read TNT incentives from
RewardVaults, and optional staker inflation fromServiceFeeDistributor.
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.soltest/v2/rewards/ServiceFeeDistributor.t.soltest/v2/rewards/ServiceFeeDistributorStreaming.t.soltest/v2/Rewards.t.soltest/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.