Evolution of the Solana Foundation Delegation Program

Introduction

The Solana Foundation is excited to announce the evolution of its Delegation Program to eligible validators participating on testnet and Mainnet Beta. The purpose of the Foundation’s Delegation Program is to provide incentives to encourage the growth of Solana as a high-performance decentralized network while providing a path for new validators to attract delegations and earn associated SOL rewards.

As the Solana ecosystem continues to grow and interest from the community in running a validator has skyrocketed, the Foundation has been working to evolve the process and criteria for the Delegation Program. The current and future plans for this program are detailed below.

Please note that participation in this program is entirely optional. The Solana network has always been and always will be entirely permissionless. Anyone, anywhere can run a validator node at any time.

Dynamic Delegation Sizing

As initially described when the program was first introduced, the delegation bot which implements the program strategy assesses eligible validators based on certain performance criteria each epoch and either awards or removes a stake delegation based on which criteria are met.

To date, the size of the Foundation’s delegation to each validator node has been fixed, with discrete, pre-announced changes to the delegation size.

As of Epoch 187, the new tooling allows for a growing number of nodes, and the maximum delegation size will fluctuate dynamically, as the delegations for each eligible node should be the same size and are drawn from a single pool of tokens.

The delegation bot will delegate a fixed “baseline” stake to all eligible nodes on the network that meet the baseline criteria.

The delegation bot will delegate a dynamic “bonus” stake to all eligible nodes that meet the bonus criteria. The size of the bonus stake is tuned to delegate all remaining stake controlled by the program after all the baseline stakes are delegated.

Example:

Total amount of program tokens: 100,000,000 SOL
Size of baseline stake: 25,000 SOL
Number of validators earning baseline stake: 1,000
Number of validators earning bonus stake: 900

Total amount delegated as baseline stake: 1,000 * 25,000 = 25,000,000 SOL
Remaining pool for bonus stake: 100,000,000 - 25,000,000 = 75,000,000 SOL
Size of bonus stake per eligible validator: 75,000,000 / 900 = 83,333 SOL

As the number of validators participating in the program changes, or the percentage of validators who meet the bonus stake criteria change, the size of the bonus pool will rise or fall each epoch, continuously rebalancing.

If the number of eligible nodes on the network grows to a point where the bonus pool would fall close to zero, the Foundation will re-assess the relative size of the baseline/bonus pools at that time.

Monitoring your node’s Foundation stake

The delegation bot running on both mainnet and testnet currently outputs to this wiki. By pasting your validator’s identity pubkey in the search bar, you can see which criteria a node meets or fails to meet for any given epoch, and what changes to stake were made as a result. This same data set is also published to the #mb-stake and #testnet-stake Discord channels.

A visualizer for each validator’s historical and comparative performance, and a new registration portal for new users, will be released in the coming weeks.

Individual Network Stake Criteria

The criteria to earn stake on a validator node are detailed per epoch in the wiki for Mainnet and Testnet.

To receive baseline stake, a validator must:

  • Have good uptime as determined by the node’s vote credits earned per epoch relative to the number of blocks produced
  • Commission 10% or lower (enforced on Mainnet only)
  • Stake concentration in a single data center must not exceed a certain threshold. Currently, 11% for Mainnet and 32% on Testnet. (Data for this is drawn from this validators.app API and grouped by data_center_key field)
  • Be running recent Solana validator software version

To receive bonus stake, a validator must:

  • Meet all the baseline stake criteria
  • Must have a block production skip rate not exceeding 35 percentage points (subject to change) above the cluster mean skip rate. For epoch 187 on mainnet, this skip rate limit was 64%, which is 35 percentage points greater than the cluster average of 29%.

Testnet + Mainnet Stake Criteria

In addition to the stake criteria listed above for individual nodes, an additional requirement will soon be added, requiring that any eligible validator also maintain an associated validator on testnet in order to receive the Foundation stake on mainnet. As long as the testnet node is receiving at least baseline stake, the associated mainnet node will be eligible for Foundation stake. If the testnet node loses its baseline stake, the mainnet node will be de-staked by the Foundation’s delegation bot until the testnet node regains its baseline delegation.

Please note this is not currently enforced as a mainnet delegation requirement, but the Foundation expects to enforce this within 2 months (around August 2021). This delay is to give validators time to transition to these new requirements.

Associating a Testnet and Mainnet Node

The Solana Foundation has released a new command line tool which is used to add new validator identities to the delegation bot program, and allow validators to associate the identity of their testnet and mainnet nodes so the testnet + mainnet stake criteria described above can be checked.

If you have already created your validator identity keypairs, you do not need to re-create any keys, simply sign with your existing keypair files when using the CLI tool as described in the link below.

Instructions for installing and running the solana-foundation-delegation-program CLI tool can be found here: stake-o-matic/README.md at master · solana-labs/stake-o-matic · GitHub

When a validator first creates an entry in the solana-foundation-delegation-program CLI program with both their testnet and mainnet keys, this entry will show a Pending status when queried.

As part of the rolling onboarding process, the Solana Foundation will mark eligible entries as Approved, which will be reflected on chain. As soon as any entry is shown as Approved, the identity pubkeys in that entry are immediately eligible for Foundation stake. A validator holding those keys may start a node at any time and as long as the performance requirements are met, will be delegated by the bot the next time it runs (once per epoch).

Note: No action is required for validators who have been previously enrolled in the Delegation Program. The entries associating your Mainnet and Testnet nodes have already been created and Approved.

Onboarding Process for Tour de SOL Validators

For validators who are running nodes on testnet and want to participate in the Delegation Program, please create an entry for your validator using the solana-foundation-delegation-program tool. You will need to create an identity keypair to be used with your Mainnet validator (if you don’t already have one) before you create the entry on chain using the solana-foundation-delegation-program tool. Even if you are not yet running a node on Mainnet, creating the keypair and associating it with your current testnet identity is necessary before you would be entered into the program.

Ultimately, any validator will be able to be automatically eligible for the Delegation Program, however during this initial expansion, onboarding will be done incrementally. Validators will be onboarded into the Delegation Program with priority given based on the number of completed Tour de SOL stages and historical and current node performance. Creating an entry using solana-foundation-delegation-program is a prerequisite for onboarding to the program.

The Solana Foundation plans to initially onboard approximately 25 validators each week. As the new process is smoothed out and pending no unforeseen issues with the network growth, the Foundation hopes to accelerate the onboarding pace as soon as practical.

Validators can check their onboarding ordering by checking the column labeled “Foundation Delegation Program Onboarding Group” in the Public Validator Registry (column BC), starting on June 4th.

The long term goal is to remove any manual gating process to the onboarding flow from initial registration to receiving your first Mainnet stake delegation from the Foundation. While these new tools and processes are still being tested, the Solana Foundation will continue a conservative rate of onboarding to the program.

In the past, validators entering Mainnet through the Foundation Delegation Program were issued 500 unlocked SOL at the time of onboarding. This was used to pay for voting fees in the absence of staking/voting rewards, which are automatically deposited into a validator’s vote account. Now that inflation is enabled on Mainnet, the Foundation will no longer be issuing unlocked SOL to new validators in the program.

If you have questions please ask in #solana-foundation-delegation-program Discord channel, or discuss in this forum thread.

Validators already in the Delegation Program

If you have previously been onboarded to the Delegation Program and have been receiving a delegation on Mainnet, no action is required. You are automatically rolled into the new delegation program.

As previously announced, the last month of direct compensation for Mainnet validators already enrolled in the program was April 2021. At this time, the only Foundation incentive for mainnet validators is any rewards earned from the Foundation stake.

Please confirm that both your Mainnet and Testnet validator identities are correct by checking your status using the solana-foundation-delegation-program tool.

If you previously shut down your Testnet node, you will need to restart it before the testnet + mainnet stake criteria is enforced in order to retain your delegation on your mainnet node.

Monitoring your registration/eligibility status

Passing KYC is required to be eligible for the Delegation Program. For now, you may check your KYC status by looking up your validator’s identity pubkey in our Public Registry spreadsheet. This sheet will be deprecated when our new web portal is rolled out in the coming weeks.

A validator’s eligibility for Foundation stake is seen by querying the status of your entity using the solana-foundation-delegation-program CLI tool. Anyone may create an entry with this tool at any time, but the entries will show as Pending until approved by the Foundation.

The long term goal is to remove any manual gating process to the onboarding flow from initial registration to receiving your first Mainnet stake delegation from the Foundation. While these new tools and processes are still being tested, the Solana Foundation will continue a conservative rate of onboarding to the program.

Farewell, Tour de SOL!

With the integration of the new onboarding tools and the associated stake requirement for running on both Mainnet and Testnet, “Tour de SOL” will cease to be a separate program.

Anyone who has joined Tour de SOL and is still validating on testnet will continue to be compensated at the current rate of $500 US paid in locked SOL until the testnet + mainnet stake requirement goes into effect later this summer. After that point, no further compensation for running only on Testnet will be issued.

It is the Foundation’s goal to onboard as many high performing Tour de SOL validators to the delegation program on Mainnet before the end of testnet compensation.

Testnet is and will continue to be a vital part of the Solana ecosystem, and by tying the performance of testnet nodes with the incentives provided on Mainnet, the Foundation hopes that both networks will continue to grow and scale.

Introducing new Validators

Once the new onboarding process is underway and the new registration/status monitoring web portal is online, the Foundation will open the registration for the Delegation Program to anyone who is not already running as part of Tour de SOL. The goal is to allow as many Tour de SOL validators to join the Delegation Program as possible first. For any new future validator operators, they will join the updated program in which running on testnet is a prerequisite to receive a stake delegation on Mainnet, rather than an independent program. Until then, the Foundation will not be compensating any additional validators for participating only on testnet other than those who joined Tour de SOL previously.

If you have questions please ask in #solana-foundation-delegation-program Discord channel, or discuss on the thread here on the forum.

Thank you all so much for your ongoing support of the Solana network!

5 Likes

Thank you @danpaul000 a great post and evolution of our Delegation Program

Has it been ~18 months since we kicked off Tour de SOL! …time flies so fast when all of us doing amazing things.

Hi tell you about my story. I just set up a high grade validator in early May and found TDS has been suspended for months. Now I’m delighted to notice the delegation program is reopened. But I’ve been in the “pending” status of delegation program and didn’t find my name in the google doc because I didn’t catch the TDS.

So it appears to me not easy to join this community as an active participant willing to pay hardware cost and network bandwidth. I’m not complaining but is there any shortcut for new comer to play an active role in solana network?

I have prepared a translation of Dan’s article for the Russian-speaking audience to make it easier to read this large publication in their native language