Overview
The Rewards v2 protocol upgrade is the next iteration of EigenLayer rewards. The proposal is outlined in depth in (ELIP-001).
Rewards v2 addresses key challenges identified in the EigenLayer Rewards MVP (v1), particularly the need for Operator-directed rewards via external logic and flexibility for Operators in setting different fee rates to better cover operating costs or attract more stake when running different AVS types. The growing demand from AVSs for more performance-based rewards prompted this upgrade, ensuring EigenLayer's rewards protocol can serve a wider variety of scenarios.
This upgrade to the core contracts has been audited. The results of these audits are public and can be found here.
Breaking changes and upcoming breaking changes
Operators that integrated the first released version of the Rewards code should note the following naming change. globalOperatorCommissionBips
has been renamed to defaultOperatorSplitBips
.
Improvements
- Performance-based and directed rewards from AVSs to Operators via the
createOperatorDirectedAVSRewardsSubmission
function. - Operator-configurable split for AVS Rewards, via the
setOperatorAVSSplit
function on theRewardsCoordinator
to allow per-AVS variable Operator fees. - Operator-configurable split for Programmatic Incentives with the Eigen Foundation, via the
setOperatorPISplit
function on theRewardsCoordinator
to allow variable operator fees for Programmatic Incentives. - Batch claiming for both Stakers and Operators via the
processClaims
function on theRewardsCoordinator
- Permissionless verifiability of the entire Rewards pipeline via the open-source Eigen Sidecar. More details on this can be found in the Sidecar repository.
What's Changed
- Fix: Update coverage workflow job name by @ypatil12 in #834
- Fix: Get Dev to Compile by @ypatil12 in #835
- feat: introduce zeus templates by @nadir-akhtar in #790
- refactor: require "name" to be populated for deployments by @nadir-akhtar in #872
- Update LICENSE by @A2Zrestaking in #887
- chore: update bindings by @0xrajath in #890
- feat: Rewards v2 by @0xrajath in #837
- fix: operator-directed rewards total amount upper bound by @0xrajath in #917
- feat: rewards v2 upgrade script by @jbrower95 in #888
- test: rewards v2 upgrade event assertion in zeus script by @0xrajath in #924
- feat: explicit multisig syntax on zeus scripts by @jbrower95 in #928
- refactor: address informational security review findings by @nadir-akhtar in #909
- fix: patch rewards v2 by @0xrajath in #940
- chore: fix semver constraint on rewardsv2 by @jbrower95 in #941
- chore: fix zeus environment by @jbrower95 in #942
- chore: log rather than comment final coverage output by @nadir-akhtar in #943
- fix: operator split activation delay lock by @0xrajath in #947
- fix: patch operator split lock upgrade by @0xrajath in #948
- docs: rewards v2 by @nadir-akhtar in #952
- fix: rewards v2 audit fixes by @0xrajath in #987
- chore: update addresses for slashing by @ypatil12 in #974
- fix: default split frontrun patch upgrade by @0xrajath in #991
Full Changelog: v0.4.3-mainnet-rewards-foundation-incentives...v0.5.4