Token Gating

Token gating lets you restrict who can fill out your form based on their on-chain token holdings. Only wallets that meet your rules can access and submit the form.


How it works

  1. Respondent connects their wallet at the form URL

  2. forms.wtf reads the respondent's on-chain token balances (read-only, no transaction)

  3. If the balance meets your rules, the form unlocks

  4. If not, they see a "You don't meet the requirements" message


Setting up token gating

  1. Open the form builder and click Settings

  2. Toggle Token Gating on

  3. Click Add Rule

  4. Configure the rule:

Field
Description

Chain

Ethereum (mainnet)

Contract address

The token's smart contract address

Token type

ERC-20, ERC-721, or ERC-1155

Token ID

For ERC-1155 only — specific token ID

Minimum balance

How many tokens the wallet must hold

  1. Click Save


Gate logic

When you have multiple rules, choose how they're combined:

  • ALL rules (AND) — respondent must meet every rule to access the form

  • ANY rule (OR) — respondent meets at least one rule to access the form

Example:

  • Rule 1: Hold ≥1 BoredApe NFT

  • Rule 2: Hold ≥100 $APE tokens

  • With AND: must have both

  • With OR: must have either


Token types

ERC-20 (Fungible tokens)

Used for governance tokens, utility tokens, stablecoins.

  • Set a minimum balance (e.g. 100 tokens)

  • Decimal amounts are supported

Example: Gate to wallets holding ≥500 $UNI

ERC-721 (NFTs)

Used for standard NFT collections where each token is unique.

  • Set minimum balance to 1 to require any NFT from the collection

  • Set higher to require multiple NFTs

Example: Gate to CryptoPunks holders

ERC-1155 (Multi-token)

Used for NFT collections with multiple editions per token ID.

  • Requires a specific Token ID

  • Set the minimum balance for that specific token ID

Example: Gate to holders of Token ID 42 with balance ≥2


Plan limits

Plan
Gate rules per form

Free

1

Pro

Unlimited

Team

Unlimited

Business

Unlimited


What respondents see

If a respondent visits a gated form and their wallet doesn't qualify:

  • They see a clear message explaining they don't meet the requirements

  • The gate rules are shown (contract address, required balance)

  • They are not able to proceed to the form

If they disconnect and reconnect with a different wallet, the gate is re-checked.


Notes

  • Token balances are checked at the time of form access and again at submission

  • Balance is read live from the chain — no caching

  • Only Ethereum mainnet is currently supported for token gating

  • ENS names are resolved server-side for display purposes only; gating uses the raw wallet address

  • Gate checks are performed server-side via RPC — respondents cannot spoof their balance

Last updated

Was this helpful?