# Staking Guide

## Getting Started

1. Visit [staking.zentachain.io](https://staking.zentachain.io)
2. Connect your Web3 wallet (MetaMask, Trust Wallet, or WalletConnect-compatible)
3. Ensure you have CHAIN tokens and ETH for gas fees in your wallet

***

## Understanding Pools

Before staking, review the available pool parameters:

| Parameter              | What It Means                                               |
| ---------------------- | ----------------------------------------------------------- |
| APR                    | Your annual reward rate (e.g., 16% APR = 1600 basis points) |
| Minimum Stake          | Lowest amount you can deposit                               |
| Maximum Stake Per User | Upper limit on your individual stake (if enforced)          |
| Pool Size              | Total capacity of the pool                                  |
| Claim Time Lock        | How long you must wait between claiming rewards             |
| Unstake Time Lock      | How long after staking before you can withdraw              |

***

## How to Stake

### Method 1: Standard Staking (Two Transactions)

1. Select a pool and review its parameters
2. Enter the amount of CHAIN you want to stake
3. **Transaction 1:** Approve the contract to spend your tokens
4. **Transaction 2:** Confirm the staking transaction

### Method 2: Permit-Based Staking (One Transaction)

For wallets that support ERC-2612 permits:

1. Select a pool and enter your amount
2. Sign the permit message (off-chain, no gas)
3. **Transaction:** Confirm staking — approval and deposit happen together

{% hint style="info" %}
Permit-based staking saves gas by combining approval and staking into a single transaction.
{% endhint %}

***

## Managing Your Stake

### Dashboard

After staking, your dashboard shows:

* **Active Stakes** — Your staked amounts across all pools
* **Accumulated Rewards** — Real-time reward tracking
* **Time Locks** — Remaining time until you can claim or unstake

### Claiming Rewards

1. Check that your claim time lock has elapsed
2. Click **Claim Rewards**
3. Confirm the transaction in your wallet
4. Rewards are minted directly to your wallet

{% hint style="warning" %}
Claiming resets the claim timer. You must wait the full claim time lock period before claiming again.
{% endhint %}

### Adding More Tokens (Compounding)

You can add tokens to an existing stake at any time:

* Your previous rewards continue accruing
* The **unstake timer resets** for the entire amount
* New rewards begin accruing on the combined total

***

## Unstaking

### Standard Unstake

1. Verify the unstake time lock has elapsed
2. Click **Unstake**
3. Confirm the transaction
4. Your staked tokens plus unclaimed rewards are returned to your wallet

### Emergency Unstake

Only available when a pool is in emergency mode:

* Bypasses time locks
* Returns all staked tokens plus accumulated rewards
* Emergency mode is controlled by the contract owner

***

## Pool Status Types

| Status    | Meaning                                          |
| --------- | ------------------------------------------------ |
| Active    | Normal operations — staking, claiming, unstaking |
| Paused    | Temporarily suspended — no new operations        |
| Emergency | Emergency mode — immediate unstake available     |

***

## APR Changes

APR changes are subject to a **48-hour delay** to prevent front-running:

1. A change is scheduled and becomes publicly visible on-chain
2. After 48 hours, the new APR takes effect
3. You can monitor pending changes through the dashboard

***

## Security

* **Reentrancy Protection** — All transactions are protected against reentrancy attacks
* **Smart Contract Callers Blocked** — Only externally owned accounts (wallets) can interact
* **Timestamp Buffer** — A 15-minute buffer prevents timestamp manipulation in reward calculations
* **Emergency Cooldown** — Emergency mode can only be toggled once every 24 hours

***

## Troubleshooting

| Issue                | Solution                                         |
| -------------------- | ------------------------------------------------ |
| Transaction fails    | Check you have enough CHAIN and ETH for gas      |
| Cannot claim rewards | Wait for the claim time lock to expire           |
| Cannot unstake       | Wait for the unstake time lock to expire         |
| Pool is paused       | Wait for the pool to be resumed by the admin     |
| Insufficient balance | Verify CHAIN tokens are in your connected wallet |

***

## Contracts

All contracts are verified on Etherscan:

| Contract    | Address                                                                                        |
| ----------- | ---------------------------------------------------------------------------------------------- |
| StakeChain  | [0xC00D35881...](https://etherscan.io/address/0xC00D35881e66E9eCC116De9696Ae12A18104B106#code) |
| CHAIN Token | [0x6B58cfBEd...](https://etherscan.io/address/0x6B58cfBEdCfe7C59d456c864c92257910A61D8FC#code) |

***

## Links

* **Staking Platform:** [staking.zentachain.io](https://staking.zentachain.io)
* **Technical Documentation:** [Staking Contract Docs](https://docs.zentachain.io/chain-network/staking)
* **Support:** [zentachain.io/contact](https://zentachain.io/contact)
