# Types of Incentives

## **Royco supports two types of Incentives: tokens and points.**&#x20;

### **1. Tokens**

Royco supports standard Tokens via the ERC20 standard.&#x20;

### **2. Points**

Points powered by Royco are mostly stateless, unlike conventional ERC20 tokens, and rely on a single "award" function to facilitate off-chain balance indexing. To create a points campaign, deploy a Royco Points Contract through the Royco Points Factory and set your constructor parameters to specify the name, symbol, decimals, and owner of the points campaign. \
\
Only  Wrapped Vaults contracts and the Recipe Market Hub deployed on that chain can call the "award" function. The owner of a points program can whitelist wrapped vaults and IPs that can create offers on both (Vault and Recipe) market hubs with the points program as an incentive. When “award” is called, the Points contract emits an “awarded” event which can be used to track the points awarded and their recipients. Note that adding a wrapped vault or an IP to the whitelist is irreversible - they cannot be removed once added.

The Royco SDK allows you to use point values for any future uses. It simply involves indexing all award events and summing the points awarded to users. \
\
Learn how to create a points campaign: [here](/for-incentive-providers/incentivize-iams/place-an-incentive-offer-for-developers.md).

## Types of Campaigns

* **Add Incentives:** Distribute "X" amount of "T" token from a defined start time to end time.
* **Extend Incentives:** Increase distribution amount of "T" token by adding more tokens to "X" from current start time to a defined end time or new future end time.
* **Refund Incentives:** Get the "X" amount of "T" tokens back, if the current time is less than the start time and IP decides to no longer give incentives.\
  \ <br>


---

# 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.royco.org/for-incentive-providers/incentivize-iams/types-of-incentives.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.
