This document addresses the question of the feasible technical options for the CSM Referral Program. Three options are considered.
To keep this document focused on the technical part and given the absence of the approved CSM Referral Program details, we assume that a Referral Program looks like this:
With that said, we need to come up with a solution capable of identifying Node Operators with the approved referral address and assessing their performance in the same way as CSM Performance Oracle does. Also, an on-chain registry of the approved address can be useful.
The most straightforward approach is to use the existing CSM Performance Oracle to distribute referral rewards. This application already has all the information needed to calculate referral rewards. A separate type of reward recipient can be introduced to ensure the separation of the Node Operator's and referral rewards.
The main caveat with the approach is that we have to alter the existing Staking Router fee approach. Currently, there are two separate params for the moduleFee
and treasuryFee
. Once set, a dedicated portion of the rewards will be minted to the module and the Lido DAO treasury, respectively. That means that CSM Performance Oracle will be only capable of distributing moduleFee
. To overcome this, we need to set moduleFee
to 10% and treasuryFee
to 0%. Then, CSM Performance Oracle will distribute Node Operators' rewards and referral rewards. The rest will be pushed back to the Lido DAO treasury. Referrals can claim rewards in the same way Node Operators do.
The proposed fee structure (moduleFee
10% and treasuryFee
0%) might look confusing for the Lido DAO members and Lido protocol users. That's why it is important to emphasize the following:
moduleFee
will be set to X% and treasuryFee
Y%The alternative approach is to create a dedicated committee responsible for distributing referral rewards manually. The same approach is used for the existing reward-share program.
This approach will not require any changes to the existing fee distribution. However, it is apparent that operating a dedicated committee is a resource-consuming task that one can consider unsustainable in the long term.
Given the two approaches above, a mixed approach can be introduced. In this approach, the treasuryFee
is still allocated to the Lido DAO treasury, and a dedicated committee decides on the portion of rewards to be taken from the treasury retrospectively to a standalone vault. Then, CSM Performance Oracle calculates referral rewards distribution and submits it in the form of a Merkle tree root to the vault. Once a new tree root is submitted, referrals can claim their portion of the rewards in the same way Node Operators do in CSM.
After a series of internal discussions ValSet value stream contributors decided to go with the Option A.