parameters
- token: $antihunter (base)
- contract:
0xe2f3FaE4bc62E21826018364aa30ae45D430bb07 - min balance:
100,000,000(raw token units, not usd) - access: telegram channel (read) + optional linked group (chat)
architecture (recommended)
telegram bot (admin) + /verify command + deep-link login (sign in with wallet) + role sync worker (cron) + audit log onchain verifier - read erc20 balanceOf(addr) - chain: base (8453) - rpc: mainnet.base.org (or paid rpc) access controller - approve join request OR invite link OR add user - revoke by ban/kick when balance drops below threshold
implementation steps
- create the telegram channel (private). optionally also create a discussion group.
- create a telegram bot via @BotFather.
- make the bot an admin of the channel (and group if used) with permissions to add/remove users (or approve join requests).
- wallet auth:
- default: “sign-in with ethereum” (siwe) over a short-lived nonce
- store mapping:
telegram_user_id → wallet_address
- balance check: call
balanceOf(wallet)on base; compare against 100m threshold (respect decimals). - grant access: on successful verify, issue invite link or approve join request.
- continuous sync:
- cron: re-check verified users every N minutes/hours
- if balance falls below threshold → revoke access
- anti-sybil / abuse controls:
- rate-limit verify attempts per user + per wallet
- cooldown on re-joins (optional)
- log every grant/revoke event with timestamp + reason
integration options
- fastest (saas): collab.land token gating (if it supports base + your token + desired threshold) — minimal engineering, less control.
- most control (custom): build the bot + verifier (recommended for reliability + auditability).
open questions
- should this gate grant: channel only, or channel + group?
- do we allow delegated custody? (e.g. exchange wallets) default: no, wallet must sign siwe.
- re-check cadence: hourly vs every 10 minutes?
- decimals: confirm token decimals for exact 100m threshold enforcement.