# Become a Validator

A validator is a participant in the network who runs validator nodes to run and secure the network. Here are some steps to run a validator node in REI Network:

### Step1: Setup a validator node

Following quick start to setup your nodes and make sure your validator node is fully synced.

{% content-ref url="/pages/6CdUh9Iy8YsITMWrDaej" %}
[Quick Start](/developer/quick-start.md)
{% endcontent-ref %}

#### Minimum system requirements

* RAM: 16GB
* CPU: 4-core
* Storage: 500G SSD
* Bandwidth: 10Mb/s

#### Recommended system requirements

* RAM: 32GB
* CPU: 8-core
* Storage: 1T SSD
* Bandwidth: Unlimited

### Step2: Submit a Validator Profile

This repository (repo) provides the details about offchain informations of validators.

{% embed url="<https://github.com/REI-Network/rei-validator>" %}
REI Validator Profile Guideline
{% endembed %}

### Step3: Vote/Stake to your node

You can stake on REI Network by following the guides below:

{% content-ref url="/pages/t05HLuas9pX9QEoe9QfA" %}
[Voting for a Validator](/rei-dao/guides/voting-for-a-validator.md)
{% endcontent-ref %}

### Step4: Set commission rate

Commission rate represents the proportion of the validator's reward, which is a number from 0 to 100. It can only be set by the validator, and the interval between 2 modifications cannot be less than **24 hours**.

> Eg: If a validator sets the Commission rate to 40, then 40% of the rewards he receives will be distributed to all users who voted for this validator.

{% tabs %}
{% tab title="UI" %}

* Navigate to <https://dao.rei.network/#/stake>&#x20;
* If the address in your wallet is a validator address, there will be a `Set Commission Rate` button appears beside `Voting to Validator`

![Set Commission Rate](/files/FFqdrybTtcQYLfciZLme)

* Click on `Set Commission Rate` and enter a percent number you wanna share with voters

![Set Commission Rate](/files/hUq3gIA0E9ByKZzlwJJL)
{% endtab %}

{% tab title="Ethers" %}

```typescript
import { getDefaultProvider, Wallet } from "ethers";
import { StakeManager__factory } from "@rei-network/contracts";

const provider = getDefaultProvider("https://rpc-mainnet.rei.network");

const wallet = new Wallet("yourPrivateKey", provider);

const stakeManager = StakeManager__factory.connect(
  "0x0000000000000000000000000000000000001001",
  wallet
);

stakeManager
  .setCommissionRate("commissionRate")
  .then(() => {
    // ...
  })
  .catch(() => {
    // ...
  });
```

{% endtab %}
{% endtabs %}

### Step5: Claim validator reward

{% tabs %}
{% tab title="UI" %}
Click on `Get Reward` and Claim block producer rewards in the validator list

![](/files/FFqdrybTtcQYLfciZLme)

![](/files/Ku3U88y0R4F30TzVqYHa)
{% endtab %}

{% tab title="Ethers" %}

```typescript
import { getDefaultProvider, Wallet } from "ethers";
import { StakeManager__factory } from "@rei-network/contracts";

const provider = getDefaultProvider("https://rpc-mainnet.rei.network");

const wallet = new Wallet("yourPrivateKey", provider);

const stakeManager = StakeManager__factory.connect(
  "0x0000000000000000000000000000000000001001",
  wallet
);

stakeManager
  .startClaim("receiveAddress", "claimAmount")
  .then(() => {
    // ...
  })
  .catch(() => {
    // ...
  });
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Node: The reward will be vested for 7 days before you can finally claim it, checkout [ ](/rei-dao/guides/voting-for-a-validator.md#claim-vested-stake)[Claim Vested Stake ](/rei-dao/guides/voting-for-a-validator.md#claim-vested-stake)
{% endhint %}


---

# 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.rei.network/rei-dao/guides/become-a-validator.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.
