Non Sustainable Action Rewards Counted as a Sustainable Action
Background
Apps can distribute rewards from their X2EarnRewardsPool for different purposes, for example:
- Reward for a sustainable action
- Endorser reward
- Streak or Leaderboard rewards
- Other “bonus” type rewards
However all these type of rewards are counted as a “action” in the users passport. This means non sustainable action rewards count towards keeping a passport eligible/active.
During some community analysis on the Mugshot channel on Discord, it was observed that a significant number of passports are being only kept active through mugshot leaderboard rewards, but are not doing any sustainable actions.
The purpose therefore of this post is to discuss possible solutions to this, with one potential solution outlined for further thoughts.
Problem Statement
Passports should remain active only if they do sustainable actions, and other types of rewards should not count towards passport validity.
Indexers are not distinguishing different types of rewards, and counting rewards with no-sustainable proof as a “action” in that app. This can affect the apps metrics and the DAOs metrics overall.
Potential Solution
Different reward types should be modelled into the “distribute” smart contract methods in the X2EarnRewardsPool. At the moment apps can use:
distributeRewarddistributeRewardWithProofdistributeRewardWithProofAndMetaData
these all count towards a the receivers passport regardless of if a proof is supplied. These functions all emit the RewardDistributed event which may or may not contain a proof.
The potential solution is:
- Add a new function
distributeNonProofReward→ this does not count towards the receivers passport, and generates a different on-chain event to above - Deprecate function
distributeReward(which does not require a proof) - Make a proof mandatory for
distributeRewardWithProofanddistributeRewardWithProofAndMetaData
The new function distributeNonProofReward takes an enum that categorises the non-sustainable action reward, for example endorser, leaderboard, streak, cashback etc. It also generates a new event NonProofRewardDistributed
Conclusion
With this potential solution, passports will that are only kept active from leaderboard rewards but are not doing sustainable action will eventually become inactive.
Indexers can then index the NonProofRewardDistributed for non sustainable action rewards.
Thanks!
