◆ telegram-nft-gate

Open-source, self-hosted

Telegram access, gated by current Solana NFT ownership.

Members prove current ownership of a configured Solana NFT collection. Access is granted, and revoked, automatically, with no manual review.

Every deployment runs on the operator's own Cloudflare account. There is no shared backend, no hosted service, and no point where a third party sits between a community and its members' wallets.

License MIT, self-hosted per community
Ownership data Helius DAS API
Runtime Cloudflare Workers, D1, KV

How it works

01

Connect

A member links a Solana wallet through the Wallet Standard. No seed phrase, ever.

02

Sign

They sign a single text message binding that wallet to their Telegram account.

03

Verify

The Worker checks current ownership directly against Solana, on demand.

04

Access

A single-use invite link is issued the moment ownership is confirmed.

Design principles

Non-custodial

Never requests a seed phrase or private key, and never signs a transaction. Ownership is proven by a plain message signature.

Collection-agnostic

Point it at any Solana NFT collection by configuration. Nothing about a specific community is hard-coded into the application.

Backend-authoritative

The frontend never asserts identity or ownership. Every check is re-verified server-side against live on-chain data.

Under the hood

BotgrammY, running on the same Worker that serves the verification page
DatabaseCloudflare D1, for membership state and a full audit log
SchedulingCloudflare Cron Triggers re-check ownership on an interval; grace periods handle lapses gracefully
RecoveryMigration mode protects an existing community's members while they verify for the first time