# Onboarding and Offboarding

## **Set Up a Validator**

**Introduction**

Setting up a validator node on Taker Chain is a key step in contributing to network security and earning staking rewards. Validators are responsible for verifying transactions, producing blocks, and maintaining the network's integrity. This process requires a stable and secure infrastructure, as well as ongoing management to ensure optimal performance and avoid penalties like slashing.

This guide provides step-by-step instructions for setting up your validator, including configuring your environment, managing keys, and synchronizing your node with the blockchain.

**Prerequisites**

Before proceeding, ensure you’ve completed the following:

* Read the **Validator Requirements** to understand the hardware, software, and technical skills needed.
* Familiarize yourself with general node management, upgrades, and downtime handling.
* Understand how validator rewards are calculated and distributed by reading the **Rewards Payout** guide.
* Learn about slashing risks and offenses by reviewing the **Slashing and Offenses** section.

**Initial Setup**

To run a validator, you need a Linux-based operating system (Kernel version 5.16 or later) and a properly configured server environment. This includes setting up time synchronization, enabling critical security features, and installing the Taker Chain binaries. Proper setup ensures smooth operation and minimizes downtime or penalties.

**1. Install Network Time Protocol (NTP)**

Accurate timekeeping is critical for validator synchronization. Validators rely on precise local clocks to avoid missing block production opportunities.

* Check if NTP is installed and running using:

  ```bash
  timedatectl
  ```

  If NTP is active, you should see:

  ```
  System clock synchronized: yes
  ```
* If NTP is not installed, you can install it on Ubuntu with:

  ```bash
  sudo apt-get install ntp
  ```
* Verify synchronization status with:

  ```bash
  sudo ntpq -p
  ```

  Skipping this step may lead to block production errors and potential penalties.

**2. Verify Security Features (e.g., Landlock)**

Landlock is a Linux kernel security feature that restricts process access to system resources, reducing the attack surface for validators.

* Check if Landlock is enabled with:

  ```bash
  dmesg | grep landlock || journalctl -kg landlock
  ```
* If not activated, refer to your Linux distribution’s documentation to enable it or update your system to a compatible kernel version.

**3. Install Taker Chain Binaries**

You need the official Taker Chain binaries to run your validator. These can be installed via:

* **Official Releases**: Download the latest binaries from the official Taker Chain repository.
* **Package Managers**: Use APT or other package managers to install the binaries (if supported by your distribution).
* **Docker**: Pull the official Taker Chain Docker image for containerized deployment.
* **Source Code**: Build from source if you prefer full control over the installation process.

After installation, verify the binaries are properly installed by checking their versions:

```bash
taker --version
```

**4. Key Management**

Validators require session keys for consensus participation and a node key for maintaining a stable network identity.

* **Generate Session Keys**: Use the `rotateKeys` RPC call or a CLI tool to create session keys for your validator.
* **Register Session Keys**: Submit the generated keys on-chain via the staking dashboard or CLI.
* **Set Node Key**: Generate a static node key and configure your validator to use it during startup.

**Synchronize Chain Data**

Before validating, your node must sync with the blockchain. Use the following steps:

* **Full Sync**: Downloads the entire blockchain history from the genesis block.

  ```bash
  taker --chain=taker-mainnet
  ```
* **Warp Sync**: Speeds up synchronization by downloading only the most recent state (if supported).

Monitor sync progress via logs or the Taker Chain telemetry dashboard.

**Bond Tokens**

To activate your validator, you must bond at least **2000 $veTaker**. This stake secures your validator’s role in the network. Use the staking dashboard to bond tokens and set reward preferences.

## **Start Validating**

Once your node is synced and bonded, activate your validator on the staking dashboard:

* Set commission rates and nomination preferences.
* Monitor your validator’s status and performance via the Taker Chain explorer or telemetry tools.

***

## **Stop Validating**

**Introduction**

If you need to stop validating—whether for maintenance or permanently—it’s important to follow proper procedures to protect your funds and account integrity. This includes chilling your validator, purging session keys, and unbonding your tokens.

**Pause vs. Stop**

* **Pause**: Temporarily stop validating without unbonding your tokens. Useful for short-term maintenance.
* **Stop**: Fully withdraw from validation, unbonding your tokens and disassociating your account.

**Steps to Stop Validating**

**1. Chill Your Validator**

Use the `staking.chill` extrinsic to stop your validator from participating in the next era. This action is reversible and does not require unbonding your tokens.

**2. Purge Session Keys**

Remove your validator’s session keys using the `session.purgeKeys` extrinsic. This step ensures your account is fully disassociated from the validator role.

* Use the same account that originally set the session keys (e.g., stash or proxy account).
* Failure to purge keys may prevent you from transferring tokens or reaping your account.

**3. Unbond Tokens**

To withdraw your staked tokens, initiate the unbonding process via the staking dashboard:

* Select the **Unbond Funds** option.
* Wait for the unbonding period to complete (e.g., 28 days on Taker Mainnet).

Once the unbonding period ends, your tokens will be available for transfer or other uses.

**4. Stop the Validator Node**

If you no longer wish to run your validator, stop the node process:

```bash
systemctl stop taker-validator.service
```

You can also disable the service to prevent it from restarting automatically:

```bash
systemctl disable taker-validator.service
```

***

### **Monitoring and Maintenance**

Even after onboarding or offboarding, it’s important to regularly monitor your validator’s status and performance. Use the Taker Chain telemetry dashboard and staking explorer to track metrics such as block production, rewards, and network participation.

***


---

# 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.taker.xyz/taker/taker-nodes/validator/onboarding-and-offboarding.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.
