# Foundation Nomination Program

<figure><img src="/files/HX6gDRQKMZLfjOXjsBhR" alt=""><figcaption></figcaption></figure>

Starting with era 795 the Foundation Nomination Program is live! Please read on for the rationale behind it, the requirements and rules, inner workings of the program and the exact timeline for validators.

### Rationale

The rationale behind the Aleph Zero Foundation Nomination Program (FNP) is to support the community validators, especially the smaller ones. In a way, it is a continuation of our previous efforts to move the stake away from the Foundation nodes and to the community nodes. The high-level idea behind the program is to use the stake of the Aleph Zero Foundation accounts to nominate high-performing community validators.

### Requirements

The requirements for the program are very simple:

* you need to pass KYC and register your validator at [validators.alephzero.org](http://validators.alephzero.org) (under the Foundation Nomination Program tab);
* your validator needs to have the minimal commission (5%);
* your node needs to have high performance (i.e. produce at least 90% of the expected blocks each era).

An additional rule is that if you increase your commission while being a part of the FNP, you will be removed with the next era with no possibility of automatic return.

{% hint style="danger" %}
The Aleph Zero Foundation reserves the right to:

* remove a validator from the Foundation Nomination Program if they engage in malicious behavior (e.g. equivocation)
* introduce modifications to the rules, most notably: change the formula used to award the points to the validator (as the number of validators and amount of funds staked change, the formula may need to be adjusted to ensure a fair distribution of nominations).
  {% endhint %}

{% hint style="info" %}
If you are already enrolled in the Testnet Validator Airdrop, you won't need to pass the KYC again. Simply use the "Fractal ID" button to login using your Fractal credentials and you will be able to access the FNP form.
{% endhint %}

### Algorithm

The algorithm for choosing nomination achieves a fair distribution of nominations over time. Given that there are 5 foundation accounts with different amounts of stake, we developed an algorithm that balances the nominations over time. It works like this:

* each era, every validator is awarded a certain amount of points based on their performance and the square root of own stake ([below](#rationale-behind-the-formula) we explain why we chose this formula), with the exact calculation being: `performance * sqrt(own_stake)`.&#x20;
* the points are then normalised so that 1000 points in total are awarded each era;
* each era, 5 validators with the highest amount of points are nominated;
* a 1000 points in total is deducted from the nominated validators (proportionally to the stake the were nominated with), so that the next era different 5 are nominated. This means that your total number of points may fall below zero: that's perfectly ok and doesn't mean you've been penalized in any way.

{% hint style="warning" %}
Note that if your node is underperforming, you will fall behind in the ranking. However, this is not the same as being removed from the program, which will happen if you increase your commission after the start of the program.
{% endhint %}

You can check when your node is going to be nominated next by visiting the [FNP ranking page](https://fnp.alephzero.org/). Please note that this 'ranking' is only used to determine the order in which nodes are nominated, it is not meant to serve as means of comparing validators. It will be constantly changing as next nodes are nominated.&#x20;

### Timeline

The timeline for the start of the program is a follows:

* during eras **795-801** the points are accumulated to decide the initial ranking of validators,
* starting with era **803** the nominations commence, following the algorithm described above,
* starting with era **1054** the nominations commence, algorithm was slight modified to better reflect block performance calculations done on-chain.

### Rationale behind the formula

To recap, the formula for awarding points is: `performance * sqrt(own_stake)`. Let's break down the components of the formula:

* including the validator's own stake in the calculation makes sure that splitting your stake into multiple validators is not incentivized. At the same time, using a square root of the stake instead of a linear function makes the calculation more beneficial for smaller validators;
* the `performance` is `1` when your validator performed on-target in all sessions, in a given era. On-target performance in a session means exactly what block production scoring algorithm calculates, ie if  `produced blocks in single session / expected blocks in a session >= lenient threshold`, where `lenient threshold` is at the moment 80%.  For example, if your validator produced at least 15 blocks in all sessions it was in a block production committee, `performance` is `1`.  The `performance`  is always a number from range `[0; 1]`. That means, no negative points are ever given for bad performance.&#x20;

For example, if your node have `performance` equal to `0.95` in some some era and your own stake is 40000 AZERO, the calculation will be: `0.95 * sqrt(40000) = 0.95 * 200 = 190`&#x20;

The points which are finally applied are normalized using factor `1000`, so what you see on  [FNP ranking page](https://fnp.alephzero.org/) might be different to what above formula states.&#x20;

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.alephzero.org/aleph-zero/use/validate/foundation-nomination-program.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
