Token-gate Discord and Telegram on Polygon

Gate a Discord or Telegram group on Polygon for POL holders, game item owners by token ID, and active players, and remove members who stop qualifying.

To token-gate a Discord server or Telegram group for holders of a token or NFT on Polygon, create a role in Guild, add a Token balance or NFT Balance requirement with Polygon as the chain, and give the role a Discord or Telegram reward. Members connect their wallets, Guild gives the Discord role or the group invite to everyone who holds enough, and takes it away when they sell. On Polygon you can also gate on POL, on in-game items by token ID, and on how often a wallet uses a game or app contract. Discord and Telegram gating are on the Free plan.

Polygon is the third most used chain for gating on Guild: 21.7% of active guilds with a chain requirement check Polygon, and those guilds hold 1.68 million memberships. See State of token-gated communities 2026.

Polygon in Guild

Guild's Polygon is the Polygon PoS chain: chain ID 137, with POL as its gas token. Polygon zkEVM is listed as a separate chain, Polygon zkEVM, so pick the one your contract is deployed on. Copy addresses from the project's site or from PolygonScan.

You want members who Requirement On Polygon
Hold POL Token balance, Native currency balance Yes
Hold an ERC-20 token Token balance, ERC20 balance Yes
Hold an NFT or a specific item NFT Balance Yes
Pass a check your contract answers Contract query Yes
Have an old or active wallet, or play a game Onchain activity Yes
Have an EAS attestation Be attested by No
Held a token at a snapshot, or for N days Held at a past block, Held continuously for No: Ethereum and Base only

You can also mint an NFT reward on Polygon. Supported chains has the full table.

Set up the gate

  1. On your guild, choose Manage guild, open Spaces & roles, and create a role with New role, then Empty role.
  2. Under Who gets it, press Requirement, pick Token balance or NFT Balance, choose Polygon, paste the contract address and set the amount.
  3. Under Unlocks, press Add reward and pick Discord or Telegram.

The full walkthrough is in Token-gate a Discord server and Token-gate a Telegram group.

POL, formerly MATIC

Since 4 September 2024, POL has been Polygon PoS's native gas and staking token; MATIC on Polygon was upgraded to it. Some wallets still show the old name. To gate on it, use Token balance with Native currency balance and Polygon: there is no contract address to paste.

Two things a balance doesn't see:

  • Staked POL. Polygon's docs say all staking happens on Ethereum, not on Polygon PoS, so POL a member has delegated to a validator isn't in their Polygon balance. A validator who wants to reward its delegators can add a Contract query on Ethereum against its delegation contract, with a read function that takes the delegator's address.
  • POL held on Ethereum. POL also exists as an ERC-20 on Ethereum. To count it, add a Token balance on Ethereum and set Members should meet to Any one.

Game items and collections

Game and collectible communities often care about one item, not the whole collection. In NFT Balance:

  • leave the token ID empty to count any NFT from the collection,
  • enter one Token ID for a single item, such as a founder's pass,
  • or switch to Multiple Token IDs and paste a list, such as the first 100 mints or every legendary item.

Players often keep items in more than one wallet. Tick Sum across connected wallets so the items in all of a member's connected wallets add up. See Tokens and NFTs.

To reward playing rather than holding, add Onchain activity, Contract call on the game's contract and method, with a minimum count in a Relative period such as the last 30 days. A player who stops playing drops out of the window and loses the role. See Wallet activity.

USDC on Polygon

Circle lists native USDC on Polygon PoS at 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. Polygon's docs also list an older USDC bridged from Ethereum over the PoS bridge, PoS-USDC, at 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174. They are different tokens; to accept either, add both and set Members should meet to Any one.

What Polygon doesn't offer, and what to use instead

  • No attestations. Guild's EAS requirement isn't available on Polygon. If your verifier issues attestations, they need to be on a chain Guild supports for EAS, such as Ethereum, Base, Arbitrum One or OP Mainnet. For bot filtering without attestations, see Keep bots and sybils out.
  • No holding history. Held at a past block and Held continuously for need a full archive of the chain, which Guild runs only for Ethereum and Base. For a snapshot, export the holders at your block with your own tooling and upload the wallets as an Allowlist. To keep out fresh wallets, add Onchain activity, First transaction on Polygon before a date.

Worked example: Polygon players

A game with an item collection on Polygon wants a Discord role for active players and a Telegram group for its biggest supporters.

Role 1, "Players", for a Discord role:

  1. NFT Balance, Polygon, the game's collection, at least 1, with Sum across connected wallets ticked.
  2. Onchain activity, Contract call, Polygon, the game's contract and its play method, at least 10 in a Relative period of 30 days.
  3. Members should meet: All.
  4. Reward: Discord, New role named "Players", Keep role once earned off.

Role 2, "Founders", for the Telegram group:

  1. NFT Balance, Polygon, the collection, Multiple Token IDs set to the founder's pass IDs, at least 1.
  2. Token balance, Native currency balance, Polygon, at least 500 POL.
  3. Members should meet: Any one.
  4. Reward: Telegram, with the bot added to the private group.

A player who sells their items, or stops playing for a month, loses "Players" and its Discord role when Guild next checks.

FAQ

Is token-gating on Polygon free?

Yes. Token, NFT, contract query and onchain activity requirements, and Discord and Telegram rewards, are on the Free plan. See Plans.

My requirement used to say MATIC. Do I need to change it?

No. A Native currency balance on Polygon checks the chain's native coin, which is now POL, and Polygon upgraded holders' MATIC on Polygon PoS automatically. The requirement keeps working with the same amount.

Why can't I pick Polygon for "Be attested by" or "Held continuously for"?

The requirement form only offers the chains each type supports. Attestations work on fewer chains than balances, and holding history only on Ethereum and Base.

All Guild docs