Skip to main content

Mina Foundation Delegation Program

How to Participate in the Mina Foundation Delegation Program

Learn how to receive a delegation from Mina Foundation.

info

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.

note

There are two delegation programs in Mina's ecosystem — one from the Mina Foundation and one from o1Labs, Mina's ecosystem partner. This page details the program only for the Mina Foundation.

Overview

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.

Eligibility Requirements

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

Review the Mina Foundation Delegation Policy then complete the application form. You will be asked to share your public key for receiving a delegation in 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:

info

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.

note

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.

Program Guidelines

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 selected 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.

note

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:

What happens after I receive a delegation?

Payout Procedure

As per the Mina Foundation Delegation policy, there is a mandatory requirement on delegatees to use the latest version of the payout script to manage the return of rewards.

This payout script includes:

  • Mapping of delegating wallet addresses with the correct return wallet address
  • Calculation of the Reward amounts and paybacks of the remaining rewards to the delegators.
  • Specific memo which includes the md5 hash of Pool’s Public Key (MD5 hash)

For more details and to review the script, see the README file in the mina-pool-payout repository.

Payout Addresses

You must return rewards to the address specified in the Mina Delegation Program Return Addresses mapping document. This will be covered when running the script in managing reward payback.

Payout Frequency

Rewards must be distributed at least once for a given epoch. You must send one payment in the amount of your obligation to the correct address specified in the Mina Delegation Program Return Addresses mapping document and if applicable, send the correct amount to the burn address. Both payments should have a memo field with the md5 hash value of your block producer public key. 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.

How do I calculate the reward payout?

For reference, this explanation describes how reward returns are calculated.

For details, see the implementation code.

Reward Specifications

You must send back at least the amount specified by this mechanism.

At the end of each epoch, do all of the following:

  1. Compute the total stake delegated to your account for the epoch

  2. 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.

  3. For each block produced that has a non-zero block-reward on the canonical chain rewards must be calculated based on 720 MINA.

  4. Calculate the Mina Foundation payout by multiplying the coinbase reward (equal to 720 MINA ) by the provider share calculated in the previous step minus an 8% percent fee. (i.e. payout = (provider_share * 0.92) * 720).

  5. Send a transaction to the token provider accounts with the appropriate payout and memo - please follow the rules in the "Payout Attribution" section with your transaction. More details in the following source code parts: PayoutCalculatorIsolateSuperCharge.ts and ConfigurationManager.ts.

The block producer can keep all of the transaction fees or divide them equally amongst the other members of the pool.

tip

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 MINA
  • Account B is controlled by the Mina Foundation and has 6 million MINA which are delegated to Account A via the Delegation Program.
  • Account C is controlled by a third party and has 2 million MINA. This account also delegates to Account A and has also agreed to Account A retaining 8% of the staking rewards.

In this example, the total amount of stake for Account A is 10 million calculated by adding up the balances from all the accounts.

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%. The share of the stake from Account B is 2 million MINA / 10 million MINA = 0.2 or 20%.

3 blocks are produced in this epoch that end up on the canonical chain. The blocks were won by Account A.

  1. Account A retains, 0.2 x 720 MINA x 3 blocks = 432 MINA.
  2. Mina Foundation, Account B, payout would be: (0.6 x 0.92) x 720 MINA x 3 blocks = 1,192.32 MINA.
  3. Account A retains 8%, (0.6 x 0.08) x 720 MINA x 3 blocks = 103.68 MINA.
  4. Account C payout would be: (0.2 x 0.92) x 720 MINA x 3 blocks = 397.44 MINA.
  5. Account A retains 8%, (0.2 x 0.08) x 720 MINA x 3 blocks = 34.56 MINA

Need any help?

Post your questions in the #delegation-program channel on the Mina Protocol Discord.