> For the complete documentation index, see [llms.txt](https://yieldzcc.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yieldzcc.gitbook.io/docs/tutorials/manage-staking/time-based-distribution.md).

# Time-Based Distribution

## Managing and Launching a Time-Based Distribution Staking Protocol

A **Time-Based Distribution Protocol** ensures rewards are gradually distributed over a predefined period rather than being instantly available. This setup helps prevent sudden sell-offs, promotes sustainable staking, and ensures controlled token issuance.

In this tutorial, you’ll learn how to:

* Configure the protocol
* Deposit rewards
* Open the protocol for stakers
* Start reward distribution
* Manage protocol recovery

### Understanding the Admin Panel

<figure><img src="/files/xP3fiw4QJ5A967fIMD9I" alt=""><figcaption></figcaption></figure>

#### **Metrics**

Displays key statistics, including:

* **Total MP rewards over time** → Shows how many rewards have been allocated.
* **Total staked MP** → Displays the amount of staked tokens in the protocol.
* **APR / APY** → Tracks the annual percentage rate and yield for stakers.

#### **Publishing Process**

This is where you **initialize the staking protocol** by completing the necessary steps to make it live.

#### **Recovering Process**

Allows **protocol cleanup** if you need to **recover unused rewards** when no stakers remain.

#### **Config**

Displays current **protocol settings**, including:

* **Reward Token Address** (the token used for rewards)
* **Reward Amount** (total tokens allocated for rewards)
* **Lock Period** (the time tokens must remain staked before withdrawal)

***

### **Configuring the Protocol**

Before launching the staking pool, ensure the settings in the **Config** section are correct:

**Verify the Reward Token Address**

* Ensure that the correct token address is set under **Reward Token**.

**Set the Reward Amount**

* Enter the **total amount of tokens** to be distributed over time.
* The value is represented in **Wei**, the smallest unit of the token.

**Set the Lock Period**

* Define the **number of days** tokens must remain staked before they can be withdrawn.
* In this example, the lock period is **30 days**.

Click **"Update"** to save changes.

***

### **1️⃣ Deposit Rewards & Announce the Protocol**

Once the configuration is correct, the first step in launching the staking protocol is **depositing rewards**.

Click **"Deposit Rewards & Announce"**

* This **transfers the reward tokens** into the staking contract.
* Once completed, your protocol becomes **publicly visible**.

🎉 **Your protocol is now available, but users cannot stake yet!**

### **2️⃣ Open the Protocol for Deposits**

To allow users to stake tokens, you must **enable deposits**.

Click **"Open for Deposit"**

* This function allows users to deposit their tokens into the staking contract.
* Until this step is completed, the staking function remains disabled.

✅ **Now, users can start staking their tokens!**

### **3️⃣ Start Reward Distribution**

Once at least **one staker** has deposited tokens, you can begin distributing rewards.

Click **"Start Reward Distribution"**

* This activates the **time-based reward system**, ensuring rewards are distributed gradually over time.
* This step is **only possible** if at least **one staker** has deposited tokens.

🎉 **Your staking protocol is now fully active, and rewards will be distributed over time!**

***

### **Managing the Protocol (Optional Actions)**

If needed, you can modify or recover tokens using these functions:

#### **Updating Reward or Lock Period Settings**

If you need to adjust the **reward amount** or **lock period**, you can:

1. Modify the values under the **Config** section.
2. Click **"Update"** to save the changes.
3. Confirm the transaction in your connected wallet.

This **action** is **only possible**, when the **staking protocol is not announced** yet.

#### **Purging the Protocol (Recovering Rewards)**

If no users have staked tokens and you wish to **recover** unused rewards:

Click **"Purge Protocol"**

* This transfers all remaining **reward tokens** back to the admin wallet.
* Resets the protocol to pre-announced state
* **Only possible if no stakers are in the protocol.**
