> ## 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.

# Raffle Configuration Options

> Key parameters you can set when creating a partner raffle.

import { Note } from '@mintlify/components';

When setting up a raffle on PollyPrize as a partner, you can customize various settings to match your goals. Here are the main options you'll discuss with the PollyPrize team:

**1. Basic Raffle Setup:**

* **Number of Winners:** How many winners will be drawn? (Usually `1`). Multi-winner distributions may require special handling.
* **Raffle Metadata (Name, Desc, Image):** You'll provide the essential details for display:
  * **Name:** The title of your raffle (e.g., "Polly Founders NFT Giveaway").
  * **Description:** Text explaining the raffle, the prize, and any special rules.
  * **Image URL:** A link to the banner or prize image.
  * **Public Listing:** Should this raffle appear on the main PollyPrize list page? (You can create unlisted raffles accessible only via direct link).
  * *(These are bundled into a `raffleURI` data string for the contract).*

**2. Pricing and Payment:**

* **Ticket Price Unit:** What currency will the ticket price be shown in?
  * **A Token:** e.g., \$USDC, \$POLLY, or your project's own token. You'll need to provide the token's contract address.
  * **PP Points:** Use PollyPrize's loyalty points as the price.
  * **Free:** No cost, relies on `Free Entry Tickets` setting below.
* **Price Per Ticket:** The actual cost for one ticket in the chosen unit (e.g., "5.0" if priced in USDC, "1000" if priced in PP).
* **Accepted Payment Token:** Which *single* ERC20 token can users pay with besides ETH?
  * Often set to your project's token if you want payment in that token.
  * Can be \$POLLY, \$USDC, or another agreed-upon token.
  * Set to 'None' if you only want to allow ETH payments (if priced in a token) and/or PP/Free entries.
* **Free Entry Tickets:** If this is a free promotional raffle, how many tickets does each eligible user receive? (e.g., `1`). Set to `0` for purely paid/PP raffles.
  <Note>Hybrid raffles are possible: Set a `Free Entry Ticket` count AND a `Ticket Price` (in Token or PP). Eligible users can claim their free ticket once, then buy additional tickets.</Note>

**3. Token Burning & Platform Fees:**

* **Token to Burn:** Which token's supply should be reduced using the raffle proceeds? This can be **\$POLLY** or **your project's token**. You must provide the address of the token contract to be burned. (Burning USDC is generally not supported/useful).
* **Platform Fee:** PollyPrize applies a small percentage fee on entries paid with ETH or the Accepted Token to support the platform. This rate is agreed upon during setup. The fee is deducted *before* the remaining amount is used for burning the designated `Token to Burn`.

**4. Timing and Limits:**

* **Start Time:** When can users begin entering the raffle? (Set as a specific date/time).
* **End Time:** When does the entry period close?
  * Set a specific date/time.
  * Set to `0` (no specific end date) ONLY if you set a Maximum Total Tickets limit.
* **Minimum Tickets Sold (Soft Cap):** If you set an End Time, do you want a minimum number of tickets to be sold before a winner can be drawn *after* that End Time? If the minimum isn't met by the End Time, the raffle stays open longer. Set to `0` for no minimum.
* **Maximum Total Tickets (Hard Cap):** Is there a limit on the total number of tickets available? If yes, the raffle ends immediately when this limit is reached. Set to `0` for no total limit (raffle ends based on End Time).
* **Max Tickets Per Wallet:** Is there a limit on how many tickets one person can buy? Set to `0` for unlimited per person (up to the Hard Cap).

**5. Entry Requirements (Gating):**

* Do you want to restrict who can enter? Choose **one** option:
  * **None:** Open to everyone.
  * **Token Holding (ERC20):** Require users to hold a minimum amount of a specific token (yours, \$POLLY, etc.). Provide token address and minimum amount.
  * **NFT Holding (ERC721):** Require users to hold a minimum *number* of NFTs from a specific collection. Provide collection address and minimum count.
  * **PP Balance:** Require users to have a minimum PollyPrize PP balance.
  * **VIP Status:** Restrict entry to users holding specific PollyPrize VIP tiers (e.g., Silver+).
  * **Allowlist/Snapshot (Merkle Proof):** Provide a cryptographic root (Merkle Root) representing a list of allowed wallet addresses (e.g., snapshot of L1 holders, top community members). Users on the list can generate a proof to enter. Supports **delegated wallets** (AGW).

**6. Prize Details:**

* **Prize Type:** Is the prize an `NFT`, an `ERC20 Token`, or `None` (handled off-chain)?
* **Prize Asset Address:** If NFT or Token, provide the contract address of the prize asset.
* **Prize Details:**
  * For NFT: Provide the specific `Token ID`.
  * For Token: Provide the total `Amount` to be awarded (in the token's base units - work with the team to get this right based on decimals).
* **Prize Custody:** For automatic on-chain distribution (single-winner raffles), the prize asset must be transferred to the PollyPrize contract address *before* the raffle is resolved.

**7. Optional Features:**

* **Batch Bonuses:** Offer bonus tickets for larger purchases (e.g., "Buy 10 tickets, get 1 free"). You can define up to two tiers (e.g., Tier 1: 5% bonus for 50+ tickets, Tier 2: 10% bonus for 200+ tickets).
* **Custom PP Rate:** Optionally override the default PP awarded per ticket received for this specific raffle.

By carefully considering these options, you can design a raffle that perfectly aligns with your project's promotional goals and community engagement strategy! Work with the PollyPrize team during setup to ensure all parameters are correctly configured.
