> For the complete documentation index, see [llms.txt](https://fiveelementslabs.gitbook.io/tide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fiveelementslabs.gitbook.io/tide/projects/campaigns/create-a-campaign/on-chain-tasks.md).

# On-chain Tasks

A quick guide to Tide on-chain tasks

**Step-by-Step Guide**

There are 6 different on-chain tasks that you can implement on Tide:

* NFT Holding
* Provide Liquidity
* Track On-Chain Event
* Minimum Token Balance
* Minimum number of transactions in a protocol
* Track Advanced On-Chain Event

**NFT Holding:** \
\
You may decide to gate the access to users owning a specific NFT collection.\
With Tide, you just need to look up the NFT contract address on OpenSea and paste it on Tide. It is also necessary to:

* Select the network on which the NFT contract has been deployed
* Add a brief task description&#x20;
* Include a useful link that will be associated with the description text (i.e. Opensea Collection page link)

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2F6oz3H3y2AackpipfY5gT%2Fnfthold.png?alt=media&amp;token=0466a81a-0e28-47a6-bfa0-bac7c5560d9d" alt=""><figcaption><p>E.g. Require users to hold a specific NFT to complete the campaign</p></figcaption></figure>

**Provide Liquidity:**&#x20;

With our “Provide Liquidity” task, you can monitor liquidity deposits without effort. Again the information needed are just a few:

* The pool contract address&#x20;
* The dollar amount users should deposit
* The number of days users can’t withdraw
* Network, Task Description, Website URL

For example, you can require users to deposit 1000$ for 30 days with a few clicks.

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2FmfxveVAwsFbQWsUUIcWL%2Fonchain.png?alt=media&amp;token=0b5d8ad2-4d9b-41a3-8768-c53e154ce59f" alt=""><figcaption><p>E.g., Deposit 1000$ for 30 days</p></figcaption></figure>

**Track on-chain events:**&#x20;

With Tide, it's possible to track any on-chain event. For example, derivate protocols can ask users to open 10X leverage positions.

The “Track on-chain event” is the task for monitoring interactions with any event associated with your dApp smart contracts, and it’s even possible to specify event parameters.

From a technical side, the only information needed on Tide to monitor general on-chain actions are:

* The contract address
* The associated event you want to track
* Optionally, you can add parameters to specify details related to the selected event
* Network, Task Description, Website URL

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2F07Is3SCzXPjQJfU5ynky%2FTrack%20on-chain%20event.png?alt=media&amp;token=128842d1-dda9-4931-954e-77b0e052014e" alt=""><figcaption><p>E.g. Deposit 99 or more USDC in a Pool</p></figcaption></figure>

**Minimum Token Balance:**

Require users to hold a minimum balance of a specific token to participate in a campaign.

The only fields to fill out are:

* ERC-20 token contract address
* Minimum token balance users need to hold
* Network

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2FesqRPL4frrtbUiNSgXXz%2FMinimum%20token%20balance.png?alt=media&amp;token=7233c00c-517d-4625-9f5d-0f15fbb2d241" alt=""><figcaption><p>E.g. Hold at least 100 USDC</p></figcaption></figure>

**Minimum number of transactions in a protocol:**

Require users to perform a minimum amount of transactions with a specific smart contract

The necessary information are :

* Smart contract address
* Minimum transaction count
* Network, Task Description, Website URL

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2Fm8cL8mnguwVYxptfUnNj%2FMinimum%20number%20of%20transaction%20in%20a%20protocol.png?alt=media&amp;token=c2c07c7a-cf06-4cb4-8da3-b6968bf763f3" alt=""><figcaption><p>E.g. Perform at least 10 transactions in a protocol</p></figcaption></figure>

**Track advanced on-chain events:**

With the advanced on-chain events features, it’s possible to add time constraints to general on-chain tasks. For example, lending protocols could easily require users to deposit funds in a pool and not withdraw for a month.

You can check the information to fill on Tide to implement this task in the picture below:&#x20;

<figure><img src="https://4055345489-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkyZTRMYOfEvBTTryhjda%2Fuploads%2FUYDYl7r0rHSQNv2Qc2TE%2FAdvanced%20on-chain%20event.png?alt=media&amp;token=797283ee-a738-4ff2-a389-da7ea44186de" alt=""><figcaption></figcaption></figure>
