# 🎁┃Incentive system

Camelot’s in-house incentive system, offering a robust, efficient, and user-friendly way to distribute rewards to liquidity providers. Built entirely by Camelot, this system integrates on-chain and off-chain components to provide flexibility for protocols and users to create custom campaigns tailored to their specific needs

### Key Features

* **Unified Incentive Distribution**
  * Supports v2 and v3 (with plans to support v4/Integral in the future)
* **Permissionless**
  * Any protocol can leverage the system, and it supports all tokens, including GRAIL and xGRAIL
* **Highly Customizable Campaigns**
  * Features include Blacklist/Whitelist modes, token weight adjustments, depth-based incentives, and the flexibility to evolve over time
* **Deep Partners Integration**
  * Seamlessly functions with Advanced Liquidity Managers (ALMs) and is compatible with any protocol providing liquidity to Camelot, ensuring the best possible user experience for their users
* **Streamlines reward collection**

  * Unifies the harvesting of all incentives and emissions into one simple step

  <figure><img src="https://3420642431-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHBFQDThxW7Uo7iHfOHG5%2Fuploads%2FQO4qy88AdwGNK1b4fUSz%2Fimage.png?alt=media&#x26;token=434b3bbd-a7ff-42b9-b185-b63184ab310c" alt=""><figcaption></figcaption></figure>

### How the System Works

The system is designed to handle reward distribution efficiently while allowing protocols to customize their campaigns

<figure><img src="https://3420642431-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHBFQDThxW7Uo7iHfOHG5%2Fuploads%2Fsuh8fQFxaq7lOCEAoPtP%2FOffchain%20worker%20computing%20LP%20rewards%20for%20all%20campaigns%20every%20~4%20hours..png?alt=media&#x26;token=438ef3d6-8d7b-4ff5-9f5d-267010db13e4" alt=""><figcaption></figcaption></figure>

For instructions on setting up a campaign, refer to the [campaign creation guide](https://docs.camelot.exchange/protocol/incentive-system/campaign-creation)

#### **Summary Explanation**

* Campaigns are created and funds are fully managed on-chain
* An off-chain script computes rewards for LPs
  * The script operates in 4-hour epochs, calculating rewards based on criteria specified during campaign creation
  * After each epoch, it generates a new Merkle root and corresponding proofs, which are uploaded on-chain
* **Users can:**
  * Retrieve their Merkle proofs for eligible positions via our API
  * Claim pending rewards from the distributor contract at any time

#### **Rewards Eligibility and Distribution**

Users simply need to provide liquidity to be eligible for rewards - no further action is required

* **V2 Pools**
  * Rewards are distributed proportionally to liquidity ownership
* **V3 Pools**
  * Rewards are distributed based on the exact amount of fees generated during an epoch
  * Unlike similar solutions, Camelot computes the precise fees generated for every position in every epoch, ensuring:
    * Extreme accuracy in reward calculations
    * Prevention of cheating or gaming the system

{% hint style="info" %}
**Example**:\
A user provides liquidity to the ETH/USDC pool

* **V2 Pools**: The user owns 1% of the pool’s liquidity and receives 1% of the rewards.
* **V3 Pools**: The user generates 2% of the fees and earns 2% of the rewards
  {% endhint %}

#### **Campaigns Customization**

* **Blacklist/Whitelist Modes**
  * (V2 and V3) Use a blacklist to exclude specific addresses or a whitelist to include only specific addresses
* **Token Weighting**
  * (V3 only) Assign weights to specific tokens, allowing rewards to depend not just on fees generated but also on the token composition of the position - this helps incentivize positions that hold more of one token over the other
* **Depth Criteria (WIP)**
  * (V3 only) Incentivize or exclude positions based on price ranges
  * Use minimum or maximum liquidity depth to target specific ranges

{% hint style="info" %}
A campaign for the BOOP/USDC pool with weights:\
**Fees = 70%**, **TokenA (BOOP) = 20%**, and **TokenB (USDC) = 10%**, allowing rewards to depend not just on fees but also on token holdings, incentivizing positions with more BOOP
{% endhint %}

#### **Campaign Fees and Requirements**

* Tokens must be whitelisted to be used in campaigns
* Campaigns must run for at least **24 hours**
* Campaigns must distribute at least **\~$50/day** to be considered valid
* A **1% fee** is deducted from the rewards to cover infrastructure costs

{% hint style="info" %}
A protocol creates a campaign to incentivize the GRAIL/ETH pool. They choose already whitelisted USDC as the reward token. The campaign is set to run for 7 days, distributing $500 total, meeting the \~$50/day requirement. A 1% fee is deducted, leaving $495 to be distributed among liquidity providers
{% endhint %}

### **Partners and Integrations**

* **Advanced Liquidity Managers**
  * Users providing liquidity to Camelot through integrated ALMs will receive rewards transparently and directly
  * **Currently Integrated ALMs**:
    * Gamma
    * Jones
    * Beefy (WIP)
    * Steer (WIP)

{% hint style="info" %}
**Example**:\
A user provides liquidity to Camelot through Gamma (an integrated ALM). The system automatically tracks their position, and rewards are distributed directly to their wallet without the need for a manual claim
{% endhint %}

### spNFTs Migration

* Users holding liquidity in **spNFTs** will continue receiving rewards during the first month to ensure a smooth transition
* spNFT rewards will stop on **January 1st**
* Rewards won’t apply if the spNFT is part of a **Nitro Pool**

{% hint style="danger" %}
We strongly encourage migrating liquidity from spNFTs before the deadline
{% endhint %}

<figure><img src="https://3420642431-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHBFQDThxW7Uo7iHfOHG5%2Fuploads%2F6LrUdRVMqYgTAGrffXJa%2Fimage.png?alt=media&#x26;token=afd96093-7156-44bd-88db-defae7308e44" alt=""><figcaption></figcaption></figure>
