Delegation Strategy Algorithm
Total Validator Count: 30
Target Validator Count: 50
Expected timeline to increase to target: ~ 3 months
Rebalancing
-
Rebalancing occurs once per epoch with a maximum stake change of 2% of the total pool size (we reserve the right from time to time to unstake more than this balancing the apy vs performance of validators at the time.
-
Stake reduction is ordered by
- Validators that are no longer eligible (for example validators that are no longer edgevana validators)
- Validators that are no longer scoring within the top number of validators ( in todays case if you fell to rank 31 your stake would be removed up to the maximum per epoch until removed).
- Validators that are over staked for the current ranking starting with the lowest rank of the maximum validators
Formula V2
NOTE: Active for new reserves from epoch 675, draining existing delegations from epoch 680
Scoring metric
S = (
(10 * s_info) +
(10 * s_operating_history) +
(50 * s_vote_credits) +
(20 * s_mev_distribution) +
(10 * s_edgevana_region)
)
Where:
-
s_info = a sum of if a validator has a name, website, icon, and description published each of value 0.25.
-
s_operating_history =
epochs_online / 15
, ifx < 15
. Ifx >= 15
then this score is 1. NOTE: This data is pulled from Stakenet. In order for Stakenet to track a validator, it needs to be online for 5 epochs. This means as of right now, you really need to have a history of 20 epochs. -
s_vote_credits =
10
epoch median, max commission adjusted of vote credits. Meaning if a validator has the most vote credits out of every other validator, they get a score of 1. Every other validator getsvote credits / max(vote_credits)
. -
s_mev_distribution =
10
epoch median of stake weighted, max adjusted ofmev_distributed
. -
s_edgevana_region =
(sum(edgevanaRegionStake) - validatorStake) / sum(edgevanaRegionsStake)
. This is to incentivize some distribution of stake across edgevanas available regions.
Note: all scores are a moving 10 epoch average. This is to prevent stake thrashing epoch to epoch.
Stake weight metric
SW = (
(total_pool_sol) * (validator_count - S) (total_cumulative_rank)
)
Where
- total_pool_sol = The total amount of sol available in the pool.
- validator_count = The total number of validators in the pool.
- S = validators score metric.
- total_cumulative_rank = The total cumulative rank to number of validators. For example if the total validator count is 30: 1 + 2 + 3 + 4 ... + 30 = 435
Formula V1 (deprecated)
Where:
-
epoch average, max adjusted of vote credits. Meaning if a validator has the most vote credits out of every other validator, they get a score of 1. Every other validator gets
vote credits / max(vote_credits)
. -
=
epochs\_online / 50
, ifx < 50
. Ifx >= 50
then this score is 1. NOTE: This data is pulled from Stakenet. In order for Stakenet to track a validator, it needs to be online for 5 epochs. This means as of right now, you really need to have a history of 55 epochs. -
epoch average of
(7 - commission) / 7
, ifcommission <= 7
. Ifcommission > 7
, then the score is 0. Note that commission is not a validator's current commission, rather their average commission over the last 10 epochs. -
epoch average of stake weighted, max adjusted of
mev_distributed
. -
a sum of if a validator has a name, website, icon, and description published.
-
=
(sum(stake) - validatorStake) / sum(stake\_by\_tpu)
. This is not currently a 10 epoch average and uses the values when the algorithm runs. -
epoch average, max adjusted for how far a validator is away from the 10 epoch average stake.