# Gating by NFT/Email/Wallet

By gating a ticket type, vendors can restrict the ability to purchase it to specified people only, allowing vendors to offer exclusive value to users.&#x20;

Ticket purchase eligibility can be allocated by ownership of certain NFT collections and email/NFT wallet addresses.&#x20;

{% hint style="info" %}
Please note that gating is an optional feature and does not need to be enabled should your application not require it.
{% endhint %}

***

{% tabs %}
{% tab title="Gating by NFT" %}

1. #### **Enable NFT-gating**

   \
   In the target ticket type's edit panel, enable "Gated by NFT" under "Advanced Options."

   <div align="left"><figure><img src="/files/Ye6ptH3tnSquiECzqowa" alt="" width="375"><figcaption></figcaption></figure></div>
2. **Select NFT collection to gate by**<br>

   If you have hosted an event that was ticketed by or created a membership program on Moongate, we have made it easy for you to NFT-gate by your events and membership tiers. Simply select "Your Collection" from the "Type" field.<br>

   <div align="left"><figure><img src="/files/XjBeL93mIgW38YjLvXTC" alt=""><figcaption></figcaption></figure></div>

   \ <mark style="color:blue;">**Your Collection**</mark>

   <div align="left"><figure><img src="/files/8JtFOZCpTgZuINcj01Vz" alt="" width="419"><figcaption></figcaption></figure></div>

   **1.** **Select the target event/membership program from the "NFT Collection" field.**\
   \
   **2. Select the target ticket/membership tier from the "Type" field.** \
   \
   Select "All Tier" if you do not want to gate by ticket/membership tier (i.e ticket will be available to holders of a ticket of any type from the specified event/membership of any tier from the specified membership program.)\
   \
   \
   If you are gating by an external NFT collection, **select "Other Collection."**

   <div align="left"><figure><img src="/files/K40qTWpI3vsXEHGUuzW6" alt="" width="267"><figcaption></figcaption></figure></div>

   <mark style="color:blue;">**Other Collection**</mark><br>

   ![](/files/BKCLRri5jxVrBxP1F6wD)\
   \
   **1. Select the network on which the target NFT collection is hosted.**\
   \
   **2. Enter the NFT collections' contract address.**

{% hint style="info" %}
A ticket can be gated by multiple NFT collections (i.e a purchaser must own an NFT from **at least one** of the specified collections). Simply click ‘Add Collection’ and repeat the above process to add an additional collection.\
\
![](/files/UvxK6IdRmESHlm4B07GU)
{% endhint %}

{% hint style="info" %}
Tickets can be gated so that a purchaser must own an NFT from **every** specified collection to unlock it.

<img src="/files/fMpzJKUNsUbOnDAwQgWi" alt="" data-size="original"><br>
{% endhint %}
{% endtab %}

{% tab title="Gating by Email/Wallet (Whitelisting)" %}

<figure><img src="/files/eMvVgIl6jyTwycsQVteK" alt=""><figcaption><p>How Email/Wallet-gated ticket tiers appear on event pages</p></figcaption></figure>

**1. Enable Email/Wallet-gating**

Navigate to the "Advance" section for the ticket type to be gated and enable "Gated by Email/Wallet."

<div align="left"><figure><img src="/files/GO14XsccAXbemV9nnYnv" alt="" width="375"><figcaption></figcaption></figure></div>

**2. Choose a Whitelisting Method**

Select CSV if there are a large number of people that you will be gating this ticket type to, and manual for a smaller quantity.&#x20;

<div align="left"><figure><img src="/files/VY5tk2yJTKesjEOXgLnX" alt="" width="342"><figcaption></figcaption></figure></div>

1. <mark style="color:blue;">**CSV (bulk import)**</mark><br>

   **Step 1. Select the 'Upload CSV' method**\
   \
   ![](/files/G1fk0jbVsD78lWTjgXkG)

   \
   **Step 2. Download the CSV template**<br>

   <div align="left"><figure><img src="/files/iHpshlzJEcTEUJU43HaB" alt="" width="563"><figcaption></figcaption></figure></div>

   **Step 3. Add Addresses to the CSV Template**\
   \
   Open the template in a spreadsheet editor. Following the template format, input the target email and wallet addresses. You can mix email and wallet addresses concurrently.

   **Step 4. Upload the CSV**\
   \
   Upload the edited CSV file and save.

   \
   ![](/files/NqSL2VUTlhOUtrFaRLY1)\
   \
   **Step 5. Confirm Successful Import**\
   \
   Return to the Tickets page, locate the gated ticket type, and click the number in the "Gated by" column to confirm the addresses.

   <div align="left"><figure><img src="/files/zxMIwwaXV5MmQp2Wr5cI" alt="" width="563"><figcaption></figcaption></figure></div>

   <div align="left"><figure><img src="/files/lVDAT7ItUpSpiJ42iWJn" alt="" width="563"><figcaption></figcaption></figure></div>
2. <mark style="color:blue;">**Manual**</mark><br>

   <div align="left"><figure><img src="/files/7wgUJZd8euBdAhtBZVYO" alt="" width="333"><figcaption></figcaption></figure></div>

   **Step 1. Click "Add Whitelist" and input an email/wallet address**\
   \
   Repeat as appropriate for additional addresses and save when complete.

   \
   &#x20;

   <div align="left"><figure><img src="/files/HCDuT0fvSNvffEKpxMmp" alt="" width="426"><figcaption></figcaption></figure></div>

   \
   **Step 2. Confirm Successful Import**\
   \
   Return to the Tickets page, locate the gated ticket type, and click the number in the "Gated by" column to confirm the addresses.

   <div align="left"><figure><img src="/files/lVDAT7ItUpSpiJ42iWJn" alt="" width="563"><figcaption></figcaption></figure></div>

   <div align="left"><figure><img src="/files/zxMIwwaXV5MmQp2Wr5cI" alt="" width="563"><figcaption></figcaption></figure></div>

{% endtab %}
{% endtabs %}


---

# 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.moongate.id/merchant-guide/creating-a-campaign/ticketing/gating-by-nft-email-wallet.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.
