# Testnet Rules

For efficient testnet running we established testnet rules that have following main sections:

1. [Basic requirements for testers performance and operation](#basic-requirements-for-testers-performance-and-operation)
2. [Leaderboard scoring rules](#formal-criteria-for-testers-to-stay-in-the-testnet-based-on-the-leaderboard-score)
3. [Additional requirements for being on top of the leaderboard](#additional-requirements-for-being-in-top-of-leaderboard-and-get-more-rewards)
4. [Tester's guidelines](#testers-guidelines)

### Basic requirements for testers performance and operation

The minimal formal criteria for not being disqualified for inactivity:

* Maintaining **uptime** for the running Node software;
* Executing **software update** within **72 hours** from the official update announcement
  * *OR provision of a cause for inability to do so;*
* Maintaining **correct operation** of the software without frequent downtimes/slashing (which are not related to the issues in the software or are not accompanied by a **proper bug report**)

{% hint style="danger" %}
Violation of these rules will result in notifications and following disqualification from the testnet with rewards rescindment.
{% endhint %}

### Formal criteria for testers to stay in the testnet based on the leaderboard score

Twice a week the **leaderboard** will be posted in the testnet telegram channel.

The keepers (*a mapping* `keeper_id -> score`) will be sorted by the scores in a descending order.

The algorithm for the scores is the following:

1. Divide the time in 24-hour time frames;
2. Calculate the number of executions of each keeper in these time frames;
3. Calculate the final score:

$$
S = \Sigma\_i \frac{1}{timeFrameOffset\_i}\*ExecNum\_i
$$

We settle on the **5-day time frame**-based **leaderboard**:

$$
S = \frac{1}{1}ExecNum\_1+\frac{1}{2}ExecNum\_2+\frac{1}{3}ExecNum\_3+\frac{1}{4}ExecNum\_4+\frac{1}{5}ExecNum\_5
$$

According to this leaderboard, testers, whose keepers with the highest score have scored less than a predefined [**threshold**](#user-content-fn-1)[^1], will be excluded from further participation in the testnet.&#x20;

{% hint style="info" %}
The **threshold** is to be announced.
{% endhint %}

### Additional requirements for being in top of leaderboard and get more rewards

Performing these additional activities may result (but does not guarantee) an increased incentivization:

:heart:Creating Tasks for PowerAgent. In particular, it is desirable to deploy Resolver jobs that are suitably novel and model potential applications;

:heart:Being responsive in chat and helping other testers with Tasks creation/Node launch

:heart:Inviting new skilled testers to testnet

:heart:Spreading the word in Twitter and other communities that result in brand awareness for PowerAgent in dev community

:heart:Creating any type of content that has a positive impact on the testnet and the project in general. For example, creation of written or video manuals for various interactions with PowerAgent.

### Tester's guidelines

Our goal is to assemble a community of enthusiastic and interested people, ready to help push the future of decentralization and automation in the blockchain. Current testers - *experienced* and with *deep understanding* of the protocol - will become the *basis* of the PowerAgent network of keepers, once we go live.

The following list hints what it means to be a **GOOD** tester and a **BAD** tester.

#### A **Good** Tester:

* Is seeking knowledge in the field of web3 automation;
* Acts in the interest of the project and the community;
* Has up-to-date knowledge about the project state;
* Is versed in the technical specification of the project: understands what it is and how it works;
* Is an attentive and thoughtful person;
* Updates his software regularly;
* Can execute minor software maintenance (restart/reinstallation) on their own;
* Is interested in employing automation in their own Web3 journey.

#### Example of a Good Tester:

:green\_heart:Is an experienced blockchain user;

:green\_heart:Carefully reads instructions provided by the team before acting;

:green\_heart:Follows the instructions to the letter;

:green\_heart:Makes sure that all prerequisites are satisfied;

:green\_heart:Prepares a clear and easy to reproduce bug report if a bug is encountered;

:green\_heart:Helps other testers to solve the known problems.

#### Example of a Bad Tester:

:name\_badge: Is not technically educated to adequately participate in the testnet (lacks basic web3 skills);

:name\_badge: Does not read instructions before acting;

:name\_badge: Asks questions, answers for which may be found in instructions or pinned messages;

:name\_badge: Does not care about the operation of the software, allows regular downtimes;

:name\_badge: Fails to update the software within the specified time frame after the update is released;

:name\_badge: Acts maliciously in any way that may harm the project, the team, or other testers.

{% hint style="danger" %}
*On the basis of the leaderboard scores as formal criteria or subjective evaluation of performance, the Team reserves the right to suspend any person from participation in the testnet without further explanation.*
{% endhint %}

[^1]: TBA


---

# 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.powerpool.finance/powerpool-and-poweragent-network/power-agent/old-pages/testnet-rules.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.
