> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pollyprize.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Types of Gating

> The different ways entry to PollyPrize raffles can be restricted.

PollyPrize supports several types of on-chain gating to create exclusive raffles. Here are the requirements you might encounter:

1. **No Gating**
   * **Requirement:** None! Anyone can enter (as long as the raffle is active and they meet other basic conditions like caps).
   * **Check:** The contract skips any gating check.

2. **Whitelist**
   * **Requirement:** Your address must be part of a pre-defined list determined off-chain before the raffle started. This list is cryptographically secured on-chain using a Merkle Root.
   * **Use Cases:** Allowlisting specific users, snapshot holders from other chains, rewarding top weekly PP earners, partner community members.
   * **Check:** The dApp interface seamlessly provides a valid `proof` along with your transaction. The contract verifies this proof against the stored `merkleRoot`.
   * **Delegation:** For some Merkle-gated raffles, you might be able to enter using your current (e.g., Abstract) address if eligibility is based on a *different* linked address (e.g., your L1 wallet) for which you have proven delegation rights via a resolver contract. The dApp should guide you if this applies.

3. **VIP Status**
   * **Requirement:** Your connected wallet must hold one of the specific [VIP Tiers](/loyalty/vip-tiers) listed in the raffle's requirements (e.g., "Silver VIP or higher").
   * **Check:** The contract reads your current VIP status and compares it against the list of allowed VIP statuses configured for the raffle.

4. **ERC20 Token Balance**
   * **Requirement:** Your wallet must hold at least a minimum amount of a specific ERC20 token (e.g., "Hold at least 10K \$POLLY").
   * **Check:** The contract calls the `balanceOf` function on the specified ERC20 token contract for your wallet address and compares it to the `minBalance`.

5. **ERC721 or ERC1155 NFT Holding**
   * **Requirement:** Your wallet must hold at least a minimum number of NFTs from a specific ERC721 collection (e.g., "Hold at least 3 Ruyui NFTs").
   * **Check:** The contract calls the `balanceOf` function on the specified ERC721 token contract for your wallet address and compares it to the `minBalance` (which represents the minimum count of NFTs needed).

6. **PP Balance**
   * **Requirement:** Your PollyPrize account must have a minimum spendable [PP balance](/loyalty/xp-points).
   * **Check:** The contract calculates your current PP balance (total earned minus total spent) and compares it to the `minXpRequired`.

Always check the Raffle Detail page to see if a raffle is gated and what the specific requirements are!

<Info>
  In most cases, especially for free raffles, whitelist-based gating will be prefered to real-time checking of holdings. This is to prevent participants from sending their asset from wallet to wallet to get more tickets than allowed.
</Info>
