Skip to content

Conversation

@Ank4n
Copy link
Contributor

@Ank4n Ank4n commented Jan 19, 2026

Partially implements: https://hackmd.io/@jonasW3F/rkN6BXE2ex

Overview

This PR moves era reward minting logic from pallet-staking-async to pallet-dap as well as introducing budget allocation management to DAP. Closing #10833 in favour of this since the era pot management belongs to staking.

Changes

Functional

  • Transfers minting responsibility to pallet-dap exclusively
  • DAP pre-allocates rewards at era start into dedicated pot accounts per era
  • Staking transfers from era pots via StakingRewardProvider trait instead of minting on-the-fly
  • DAP: Introduces configurable budget allocation: splits total inflation between staker rewards, validator incentives, and buffer.
  • Implements hard deprecation of staking legacy minting code path.
  • Round down era reward to ensure it never exceeds the budget (this was a minor bug in existing code)

Traits

  • StakingRewardProvider: Enables staking to request era reward allocation (minting + funding pots).
  • UnclaimedRewardSink: Specifies destination for unclaimed rewards when era pots are cleaned up after history depth expires.
  • EraPayoutV2: Succeeds EraPayout returning single era emission value (instead of tuple of (staking, treasury) split) that DAP can budget internally.

Non-Changes

  • Era inflation calculation logic remains in the runtimes (only the staker/treasury split logic changes)

Runtime Integration

Runtimes need to make the following changes:

  1. Add EraPayoutV2 implementation to pallet-dap::Config
  2. Replace staking_async::Config::EraPayout with RewardProvider = Dap
  3. Update runtime inflation logic to return total era emission (without splitting)

Out of Scope

  • Treasury Budget Management
  • Stables payout to validators (and collators)

TODO

  • DAP manages budgets
  • Move minting to DAP
  • Hard deprecate legacy minting in Staking pallet.
  • Era based pot accounts in Staking
  • Separate Staker and Validator budget
  • Track validator total self stake
  • Self stake incentive calculation logic
  • Vested Transfer of Validator Incentive Reward
  • Get rid of commission

@Ank4n Ank4n requested a review from a team as a code owner January 19, 2026 23:13
@Ank4n Ank4n changed the title Move era reward minting to DAP with era-based allocation to Staking [WIP] Move era reward minting to DAP with era-based allocation to Staking Jan 19, 2026
@Ank4n Ank4n added the T2-pallets This PR/Issue is related to a particular pallet. label Jan 19, 2026
@Ank4n Ank4n changed the title [WIP] Move era reward minting to DAP with era-based allocation to Staking [WIP] Move era reward minting to DAP with era-based allocation in Staking Jan 19, 2026
@paritytech-workflow-stopper
Copy link

All GitHub workflows were cancelled due to failure one of the required jobs.
Failed workflow url: https://github.com/paritytech/polkadot-sdk/actions/runs/21154685172
Failed job name: test-linux-stable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T2-pallets This PR/Issue is related to a particular pallet.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants