> For the complete documentation index, see [llms.txt](https://p00ls.gitbook.io/token-os/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://p00ls.gitbook.io/token-os/guides/rewarding-your-audience/in-exchange-for-completing-an-incentive.md).

# In exchange for completing an incentive

Campaigns are how your users can earn your $TOKEN in exchange for completing an action, or as we refer to them - incentive.  Once a campaign is active, users can complete one or more incentives and earn your $TOKEN as a reward. &#x20;

**Every campaign requires the configuration of the following parameters:**

* Total available supply for the campaign
* Start and end dates
* One or more incentives w/ rewards specified per incentive.  You can choose to include any of the following incentives in your campaign:
  * **Watch to Earn**:  users watch a YouTube video&#x20;
  * **Learn to Earn**:  users learn about something and answer a basic question to verify they’ve read the content
  * **Answer to Earn**:  users answer questions in a quiz format
  * **Listen to Earn**:  user listen to an embedded Soundcloud track for at least 2 minutes
  * **Subscribe to Earn**:  users subscribe to your newsletter
  * **Share to Earn**:  users share content on Facebook, Twitter or Instagram and tag you
  * **Connect to Earn**:  users connect their web3 wallet

{% hint style="info" %}
As of April 2023, campaigns must be manually configured with the P00LS admin team before going live.
{% endhint %}

**Once a campaign is configured and live:**

* When a user starts any incentive within the campaign, create a subscription to the campaign for them.  This subscription will keep track of:
  * whether or not the user is allowed to access the incentive (if they pass a token gate)
  * how many incentives the user completes
  * how many tokens they earn
* For each incentive a user completes, create an incentive validation for the user
* Once a validation has been successfully created, this will automatically trigger the creation of an allocation for the user.
* The allocation can then be claimed directly by the user, or you can choose to pay to airdrop the allocation to the user yourself
