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

# Form builder

> Build and customize token-gated forms, waitlists, and surveys for your web3 community with drag-and-drop fields and wallet-connected responses.

<Frame caption="Drag-and-drop fields, no code required.">
  <img src="https://mintcdn.com/formo/Qbe3dL6juMIXAS6y/images/token-gated-forms-form-builder-0.png?fit=max&auto=format&n=Qbe3dL6juMIXAS6y&q=85&s=1cea22f9ec6fbd0cbb86ab597572508c" alt="Token Gated Form Builder" width="1563" height="763" data-path="images/token-gated-forms-form-builder-0.png" />
</Frame>

Launch token-gated forms, waitlists, and surveys for your community.

* 🔑 <a href="/features/token-gated-forms/token-gating">**Token gating.**</a> Gate access by token ownership, NFT collections, or other onchain credentials.
* ✅ **Verified socials.** Verify Twitter accounts, Discord usernames, and more.
* 🎨 **Custom branding.** Customize your backgrounds, colors, and logo to match your brand.
* 🎨 **Template library.** Choose from a variety of form templates or build your own.
* 🌐 <a href="/features/token-gated-forms/world-id">**World ID**</a> proof-of-personhood verification.

<Frame caption="Share your forms.">
  <img src="https://mintcdn.com/formo/Qbe3dL6juMIXAS6y/images/token-gated-forms-form-builder-1.png?fit=max&auto=format&n=Qbe3dL6juMIXAS6y&q=85&s=d0e23b59fb97a69b0640759df1465418" alt="Token Gated Form Builder" width="1033" height="651" data-path="images/token-gated-forms-form-builder-1.png" />
</Frame>

<Frame caption="View all of your form responses.">
  <img src="https://mintcdn.com/formo/Qbe3dL6juMIXAS6y/images/token-gated-forms-form-builder-2.png?fit=max&auto=format&n=Qbe3dL6juMIXAS6y&q=85&s=e96ee954ef6d0254d911c3b392c14d48" alt="Token Gated Form Builder" width="1537" height="394" data-path="images/token-gated-forms-form-builder-2.png" />
</Frame>

***

## How to create your first token-gated form

Build and launch a token-gated form in under 10 minutes. This guide walks you through creating a form, adding token requirements, customizing branding, and viewing responses.

### Step 1: Create a new form

1. Go to the [Formo Dashboard](https://app.formo.so)
2. Click **Forms** in the left navigation
3. Click **Create Form**
4. Choose a template or start from scratch:
   * **Waitlist** - Collect emails and wallet addresses
   * **Survey** - Gather feedback from your community
   * **Application** - Accept applications for grants, allowlists, etc.
   * **Blank** - Start with an empty form

<Tip>Templates come with pre-built questions you can customize. Starting from a template saves time.</Tip>

### Step 2: Add form fields

The form builder uses a drag-and-drop interface. Add fields by clicking the **+** button or dragging from the sidebar.

**Available field types:**

| Category | Fields |
| - | - |
| **Basic** | Short Text, Long Text, Email, Link, Heading, Paragraph, Image |
| **Advanced** | Single Choice, Dropdown, Checkboxes, File, Rating, Scale |
| **Verification** | Connect Wallet (EVM), Connect Wallet (Solana), Connect Discord, Connect X, Connect Telegram |

A Connect Wallet field is required if you want to gate the form by token or NFT ownership. Connect Discord, Connect X, and Connect Telegram fields verify and capture the respective account.

**Rating** shows a five-star widget. **Scale** shows a numeric scale with a configurable start, end, and step (0 to 10 by default), ideal for importance questions ("rate this from 1 to 5") and NPS-style surveys.

### Step 3: Enable token gating (optional)

To restrict form access based on token ownership:

1. Click **Settings** in the form builder toolbar
2. Toggle **Token Gating** to enable
3. Click **Add Requirement**
4. Configure your requirement:

<Tabs>
  <Tab title="ERC-20 / Native Token">
    * Select **ERC20 Token** (or **Native Token** for ETH, SOL, and other gas tokens)
    * Choose the chain (Ethereum, Base, Arbitrum, etc.)
    * Paste the token contract address (not needed for native tokens)
    * Set the minimum amount
  </Tab>

  <Tab title="NFT">
    * Select **NFT** as the condition
    * Choose the chain
    * Paste the NFT contract address
    * Set the minimum quantity
  </Tab>

  <Tab title="Contract Read">
    * Select **Contract Read** as the condition
    * Choose the chain
    * Paste the contract address and ABI
    * Select a read function (e.g., `balanceOf`, `stakedAmount`)
    * Set the comparison operator and expected value
    * See [Contract Read guide](/features/token-gated-forms/token-gating#contract-read)
  </Tab>

  <Tab title="World ID">
    * Add **Connect World ID** as a requirement
    * Users must verify with World ID before submitting
    * See [World ID integration](/features/token-gated-forms/world-id)
  </Tab>
</Tabs>

Wallet requirements support both EVM chains and Solana (NFT, SPL Token, Native Token). You can also gate by Human Passport score, or require a verified (blue-check) X account, Discord, or Telegram connection. See [Token gating](/features/token-gated-forms/token-gating) for the full list of requirement types.

Add multiple requirements and choose whether responders must meet all of them or at least N of them.

### Step 4: Customize branding

Make your form match your brand:

1. Click **Design** in the form builder toolbar
2. Customize:
   * **Logo** - Upload your project logo
   * **Background** - Set a color or upload an image
   * **Colors** - Match your brand colors
   * **Font** - Choose from available fonts

### Step 5: Publish and share

1. Click **Publish** in the form builder toolbar
2. Copy your form URL (e.g., `app.formo.so/your-form-id`), download a QR code, or use the embed and social share options
3. Share the link with your community

<Frame caption="Share your form via direct link, embed, or social media.">
  <img src="https://mintcdn.com/formo/Qbe3dL6juMIXAS6y/images/token-gated-forms-form-builder-1.png?fit=max&auto=format&n=Qbe3dL6juMIXAS6y&q=85&s=d0e23b59fb97a69b0640759df1465418" alt="Share form" width="1033" height="651" data-path="images/token-gated-forms-form-builder-1.png" />
</Frame>

### Step 6: View responses

As responses come in, view them in the dashboard:

1. Go to **Forms** > select your form
2. Click the **Responses** tab
3. You'll see each submission with:
   * Wallet address
   * Form answers
   * Token verification status
   * Submission timestamp

<Frame caption="All responses are available in the dashboard with export options.">
  <img src="https://mintcdn.com/formo/Qbe3dL6juMIXAS6y/images/token-gated-forms-form-builder-2.png?fit=max&auto=format&n=Qbe3dL6juMIXAS6y&q=85&s=e96ee954ef6d0254d911c3b392c14d48" alt="Form responses" width="1537" height="394" data-path="images/token-gated-forms-form-builder-2.png" />
</Frame>

### Example: NFT holder feedback form

Here's a practical example of a token-gated survey:

| Setting | Value |
| - | - |
| Template | Survey |
| Token requirement | NFT: Your collection address |
| Minimum holdings | 1 NFT |
| Questions | "How did you hear about us?", "What features would you like?" |
| Branding | Your logo, brand colors |

Only users holding at least 1 NFT from your collection can submit the form.

## FAQ

<AccordionGroup>
  <Accordion title="Which blockchains are supported for token gating?">
    Token gating supports EVM-compatible chains (Ethereum, Base, Arbitrum, Optimism, Polygon, and more) as well as Solana. See the full list of [supported chains](/chains/overview).
  </Accordion>

  <Accordion title="Can I require multiple token conditions?">
    Yes. You can configure multiple token gate conditions and choose whether responders must meet all of them or at least N of them. See [token gating](/features/token-gated-forms/token-gating#combining-requirements) for details.
  </Accordion>

  <Accordion title="What social accounts can be verified on token-gated forms?">
    You can require a connected Discord or Telegram account, or a verified (blue-check) X account. Combine these with World ID or Human Passport score to prevent sybil submissions. See [Token gating](/features/token-gated-forms/token-gating) for the full list of requirement types.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.