Mina Foundation Delegation Program
How to Participate in the Mina Foundation Delegation Program
Learn how to receive a delegation from Mina Foundation.
PLEASE READ: This affects the submission of uptime data and the Performance Score results for receiving a delegation.
The current sidecar tracking system is being phased out to be replaced by the SNARK-work-based uptime tracking system. Until further notice, continue running the sidecar AND SNARK-based tracking system on the SAME node.
Please follow the latest updates and post questions in the #delegation-program channel on Mina Protocol Discord.
This Delegation Program is an implementation of the Mina Foundation Delegation Policy, the official policy on the delegations of MINA tokens from the Mina Foundation (referred to as “Foundation” below).
If you are a block producer looking to participate in the Mina Foundation Delegation Program, this page explains how the program works and how to send uptime data and pay back rewards.
There are two delegation programs in Mina's ecosystem — one from the Mina Foundation and one from O(1) Labs, Mina's ecosystem partner. This page details the program only for the Mina Foundation.
Mina Foundation is committed to decentralizing the governance of the Mina protocol. In order to delegate their voting power, Mina Foundation delegates its tokens to community members through the Mina Foundation Delegation Program.
In the Delegation Program, Mina Foundation delegates its tokens to a number of validators. As the validators earn staking rewards associated with the delegation, they must return the remaining rewards to Mina Foundation, but can keep 8% of the staking rewards.
Block producers are selected on a quarterly basis, known as a delegation cycle, based on their Performance Scores (see below) and requirements outlined in the Mina Foundation Delegation Policy.
How do I participate in the program?
If you are new to the Mina Foundation Delegation Program, please make sure you have fulfilled the following requirements in order to be eligible for receiving a delegation from the Foundation's token allocation.
Step 1: Complete the application
Step 2: Run the Uptime Tracking System
Next, run BOTH the SNARK-based system and sidecar on the SAME node.
The uptime tracking system sends recent blockchain data from your block producer node's perspective to a service. This service verifies whether this recent data is synced with the chain. If it is synced, it means your node is online.
Instructions for how to run the uptime tracking system:
The SNARK-based system and sidecar are two different uptime tracking systems. The SNARK-based system will be replacing the sidecar system. Until further notice during this transition, it is required to run BOTH the SNARK-based system and sidecar on the same node for the current cycle.
Step 3: Pass the KYC/AML requirement (only if selected for delegation)
In order to receive a delegation, you must also meet the KYC/AML requirements of Mina Foundation.
If you have recently been selected as a validator who will be receiving a delegation, but have not yet completed any of the KYC/AML requirements, please look out for an email with further instructions.
For more details on this requirement, please review the policies outlined in the Mina Foundation Delegation Policy.
You can only complete this step if you’re receiving a delegation for the next cycle. When you are selected for a delegation, you will be contacted with instructions on how to proceed with completing the KYC/AML requirement.
Now that you understand how to become eligible to participate in the program, please review the following guidelines to better understand how to receive a delegation and send back rewards.
How do I get seleted for a delegation?
Measuring Uptime Performance Score
The Uptime Performance Score is an important factor for selecting the public keys to receive a Mina Foundation Delegation Program delegation from a token provider.
Uptime is the measurement of when your block producer node is online. In the Mina Foundation Delegation Program, uptime is measured in 20-minute windows. If your block producer node is online at any time within a given 20-minute window, you will be marked as online for that period.
You may run more than one node with the same block producer key if you want to increase your chances of remaining online.
Uptime Performance is the percentage over a time period in which a block producer node is online and operational.
The time period of Mina Foundation's delegation programs is 90 days.
This percentage is based on all possible 20-minute windows over the last time period.
How do I track my performance score?
The leaderboard shows the ranking of block producers participating in the delegation program based on uptime performance. The sooner you fix issues with your nodes sending uptime data, the sooner you'll be rewarded with a better uptime and position on the leaderboard.
Your position on this leaderboard is an important factor in your public key being selected to receive delegation from Mina Foundation.
See the following uptime leaderboards for the latest uptime performance scores:
- Official Leaderboard: https://uptime.minaprotocol.com
- Community Leaderboards:
What happens after I receive a delegation?
You must send computed rewards as described below to the same address that was delegated to you.
Rewards must be distributed at least once for a given epoch. You can send rewards more frequently, but the preferred method is to send one payment in the amount of your obligation. This is the easiest method to avoid confusion in tracking payments, and will reduce the likelihood you will be incorrectly flagged as delinquent.
All the rewards for epoch N must be delivered (ie. accepted in a block, not just sent) no later than slot number 3,500 of the next epoch. This gives you about a week to sort out these payments.
Include a memo listing the epoch number your payment corresponds to.
Where do I send my rewards?
Please read instructions below on where and how to return block rewards:
Download the following spreadsheet to see the full list of delegation addresses and designated address to send back rewards:
In order for the token provider to associate the transaction with your delegation, please send the transaction to the address listed on the spreadsheet linked above. In the spreadsheet you can find the Mina Foundation address delegating to you, and directly to the right of the address will be the address you should return the rewards to.
How do I calculate the reward payout?
You must send back at least the amount specified by this mechanism. If you send back more tokens, you will still be regarded as eligible — but you will not be refunded anything.
At the end of each epoch, do all of the following:
- Compute the total stake delegated to your account for the epoch
- Compute the share of stake from the token provider (from both accounts) by dividing the token provider delegation by the total stake. (i.e.
provider_share = provider_delegation / total_stake). The resulting share should be between 0 and 1.
- For each block produced that has a non-zero block-reward on the canonical chain, calculate the payout by multiplying the non-supercharged coinbase reward (equal to
720 MINAat Mainnet launch) by the provider share calculated in the previous step minus an 8% percent fee. (i.e.
payout = (provider_share * 0.92) * coinbase).
- Send a transaction to the token provider accounts with the appropriate payout -- please follow the rules in the "Payout Attribution" section with your transaction.
The block producer can keep all of the transaction fees or divide them equally amongst the other members of the pool.
The canonical chain will be calculated as 12 blocks behind any tip at slot 3,500 of the next epoch.
Example of a Reward Payout Calculation
Consider the following:
- Account A has
2 million locked MINA
- Account B is controlled by the Mina Foundation and has 6 million locked MINA.
- Account C is controlled by a third party and has 2 million MINA fully unlocked. This account also delegates to Account A.
In this example, the total amount of stake for Account A is 10 million calculated by adding up the balances from all the accounts. Note that since Account C has all its tokens unlocked, any block rewards won when
winnerAccount equals Account C will be super-charged.
Now let's consider Epoch 5. The share of the stake from the Foundation is
6 million MINA / 10 million MINA = 0.6 or 60%. Three blocks are produced in this epoch that end up on the canonical chain.
The first block has a
winnerAccount equal to Account A. The total Foundation payout for this block is calculated as
(0.6 * 0.92) * 720 MINA = 397.44 MINA. In the second block the
winnerAccount is Account B — the total Foundation payout is again calculated as
(0.6 * 0.92) * 720 MINA = 397.44 MINA. The third and final block has the
winnerAccount as Account C. Now the actual coinbase is super-charged for this block and will be 1440 MINA, but despite this the Foundation rewards are still
397.44 MINA since they are calculated using the non-supercharged coinbase. Thus the total payout to the Foundation from all blocks is
397.44 MINA * 3 blocks = 1,192.32 MINA .
Finally, before slot 3,500 of the next epoch, a payment is made from any account that this block producer controls to each of the Foundation accounts — remember to follow the rules outlined in the "Payout Attribution" section above -- in this case we will send the transaction from Account A's coinbase receiver. The payment is
1,192.32 MINA tokens. Note that the transaction fees for these two transactions are paid for by the block producer.
This process is to be repeated for each of the token provider accounts that delegate to you. The token provider from the Mina Foundation will check to see that you have sent back with this mechanism by the middle of the next epoch as described above. Failing to do so, can result in ineligibility for receiving delegations.
Please repeat the process independently for each delegation, do not sum the results and divide by the number of total delegations.
Avoiding rounding errors
If you have computed a reward that has an odd number of nanomina and need to divide it between the two accounts it is okay to round down and keep the extra 1 nanomina.
If you are computing the share of the stake from the Mina Foundation, you can calculate the fraction of stake up to 5 decimal places and then truncate afterwards (ie. always round down).
If the Foundation share is 1 million MINA and the total stake is 3 million MINA, you can use 0.33333 as the stake share fraction.
If the Foundation share is 2 million MINA and the total stake is 3 million MINA, you can use 0.66666 as the stake share fraction.
Need any help?
Post your questions in the the #delegation-program channel on the Mina Protocol Discord.