Skip to content

feat(dkg): distribute dkg committee rewards from ubi#674

Open
0xHansLee wants to merge 1 commit intodkg/devfrom
dkg/distribute-dkg-rewards
Open

feat(dkg): distribute dkg committee rewards from ubi#674
0xHansLee wants to merge 1 commit intodkg/devfrom
dkg/distribute-dkg-rewards

Conversation

@0xHansLee
Copy link
Contributor

Summary

  • Distribute a configurable portion (DKGRewardPortion) of UBI rewards to active DKG committee members each block via DistributeRewardsToActiveCommittee when processing UBI withdrawal in evmstaking keeper
  • Settle rewards for the previous committee during FinalizeDKGRound via settleRewardsForPreviousCommittee, storing any remainder in SettlementBalance in BeginBlocker of DKG module
  • Sweep settlement balance in evmstaking's ProcessUbiWithdrawal via ClaimSettlementBalance to avoid circular module dependency
  • Wire DKGKeeper into evmstaking through depinject (one-way: evmstaking → DKG)

Design

The DKG and evmstaking modules cannot depend on each other. To resolve this:

  1. evmstaking → DKG (depinject): evmstaking calls DKGKeeper.DistributeRewardsToActiveCommittee() and DKGKeeper.ClaimSettlementBalance() during EndBlock
  2. DKG → evmstaking (settlement pattern): During FinalizeDKGRound, the DKG module settles rewards for the previous committee using its own module balance and stores any remainder in SettlementBalance during BeginBlocker. evmstaking picks this up in the EndBlock cycle.

Changed files

Area Files Description
DKG rewards dkg_rewards.go Core reward distribution and settlement logic
DKG keeper keeper.go, depinject.go Add BankKeeper, DistributionKeeper deps; SettlementBalance collection
DKG finalization dkg_finalization.go Call settleRewardsForPreviousCommittee on round finalize
DKG params params.proto, params.go Add DKGRewardPortion parameter
DKG events event.proto, dkg_events.go Add EventDKGRewardsDistributed
evmstaking UBI ubi.go Integrate DKG settlement sweep and committee reward deduction
evmstaking wiring keeper.go, depinject.go, expected_keepers.go Add DKGKeeper interface and depinject
Tests dkg_rewards_internal_test.go, ubi_test.go, abci_test.go, etc. 26 new DKG reward tests, updated evmstaking tests

issue: none

@0xHansLee 0xHansLee self-assigned this Feb 12, 2026
@0xHansLee 0xHansLee changed the title feat(dkg): distribute DKG committee rewards from UBI feat(dkg): distribute dkg committee rewards from ubi Feb 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant