# Staking PassKashToken (PKT)

The PassKashStaking contract allows PKT holders to stake tokens and earn rewards based on predefined staking plans. Staking helps secure the PassCash ecosystem, incentivizes long-term holding, and rewards users proportional to their stake and chosen plan duration.

#### Staking Plans

Users can choose from **three distinct staking plans**, each offering different reward rates and lock-up periods:

| Plan ID | Duration | Daily Reward Rate | Locked? | Description                                                   |
| ------- | -------- | ----------------- | ------- | ------------------------------------------------------------- |
| 1       | 30 days  | 5% (500 bps)      | No      | Flexible plan, withdraw anytime after 30 days without penalty |
| 2       | 180 days | 15% (1500 bps)    | Yes     | Locked plan with higher rewards                               |
| 3       | 365 days | 30% (3000 bps)    | Yes     | Long-term locked plan with highest rewards                    |

*Note:* Reward rates are expressed in basis points (bps), where 100 bps = 1%.

### Staking Requirements

* **Minimum stake amount:** 1,000 PKT
* **Maximum stake amount:** 500,000 PKT
* **Token:** PassKashToken (PKT) — ERC20 compliant

### How Staking Works

1. **Stake Tokens:**\
   Users deposit PKT tokens into the staking contract under their chosen plan. Tokens are transferred securely using OpenZeppelin’s SafeERC20 methods.
2. **Lock-up Period:**
   * Locked plans require tokens to remain staked for the full duration (180 or 365 days) before withdrawal.
   * The flexible plan allows withdrawal any time after 30 days.
3. **Reward Calculation:**\
   Rewards accrue daily based on the staked amount and plan’s daily reward rate:

   Reward=Amount×RewardRate (bps)×Days Staked10,000\text{Reward} = \frac{\text{Amount} \times \text{RewardRate (bps)} \times \text{Days Staked}}{10,000}Reward=10,000Amount×RewardRate (bps)×Days Staked​
4. **Withdrawal:**\
   After the minimum duration (and lock-up for locked plans), users can withdraw their initial stake plus rewards. Early withdrawal is restricted on locked plans.

### Contract Address

Staking is performed via the official PassKashStaking smart contract deployed at:\ <mark style="color:red;">0x188AEb82B227b515A7b899c30B1bb155f5B12798</mark>

*Always confirm the contract address from official PassCash channels before interacting.*

#### Security & Upgradability

* The contract uses OpenZeppelin’s upgradeable libraries, enabling future improvements without disrupting user stakes.
* It implements `ReentrancyGuard` to prevent reentrancy attacks and `Pausable` functionality to pause operations in emergencies.
* Ownership is restricted to authorized PassCash team members to maintain contract integrity.


---

# 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://read.passkash.vip/whitepaper/staking-passkashtoken-pkt.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.
