Your wallet is the guest list.
VerifyPortal checks an address for the tokens or NFTs your group requires. When it clears, a Telegram bot hands the holder a one-time code to join. No forms, no screenshots, no admin doing it by hand at 2am.
Read-only. VerifyPortal asks for a signature to prove ownership. It never requests a transaction and never sees a seed phrase.
/verify
Send the address you hold with, or connect in the browser.
Signed message0x7Ad4…9Fb2
Three moves, about ten seconds.
The member does two of them. VerifyPortal does the middle one.
Connect or paste an address
Connect from the browser, or paste a public address and sign the message the bot sends back. Signing proves the address is yours. Nothing is approved and nothing is spent.
VerifyPortal checks the list
It reads on-chain balances against the rules the group set — token amount, a collection, staked value, wallet age. The check is a read call, so it costs the holder nothing.
The bot hands over a code
A one-time code arrives in the chat with @verifyportal_bot. Paste it into the join request and the group opens. Codes are single-use and expire on their own.
What the door can check.
Combine rules with and/or. A wallet has to satisfy the whole set before a code is issued.
Set the rules once.
Add @verifyportal_bot to your group, write the rules, and stop reviewing join requests by hand.
- Re-checks on a schedule. If a holder sells below the threshold, VerifyPortal can remove them or send a warning first.
- One wallet, one seat. An address can hold a single active seat, so a whale can't stock the group with alts.
- A log you can read. Every check, code, and removal is timestamped and exportable.
- Tiers. Point different thresholds at different groups or topics from the same rule set.
The door only looks.
Wallet gating asks people to trust a stranger with their address. Here is exactly what VerifyPortal does with it.
A signature, not a transaction
The message you sign says what it is in plain text. There is no approval, no spend permission, and no contract call that can move funds.
No seed phrases, no keys
VerifyPortal has no field to type them into and no reason to ask. If anything claiming to be VerifyPortal asks for one, it isn't VerifyPortal.
Short-lived records
Addresses are stored hashed for the re-check, balances aren't kept, and codes die after one use or ten minutes — whichever lands first.
Questions holders ask.
Do I have to connect a wallet at all?
No. You can paste a public address instead and sign the message the bot replies with. Connecting is faster; pasting keeps a hardware wallet offline.
What happens if my code expires?
Send /verify again. The check runs fresh and a new code arrives. Old codes can't be reused, even by you.
Can I use the same wallet for two accounts?
Not at the same time. One address holds one active seat. Release the first seat and the address is free again.
I hold the token but the check failed.
Usually the balance sits on a chain the group hasn't enabled, or in a different address than the one you signed with. The bot names the rule it checked and the chain it looked at, so compare those first.
If I sell, do I lose access?
That's up to the admins. Most groups re-check daily and warn before removing, so you'd get a message before anything happens.
Put your wallet on the door.
Tell us about your group and we'll set the bot up on it.
Contact us.
Send the group you want gated and the rule you have in mind. We reply on Telegram, usually the same day.
- Setup is on us. We write the first rule set with you and test it on a throwaway group.
- Bring your own token. Any ERC-20, SPL token, or NFT collection on a supported chain.
- Migrating? Existing members keep their seats — we verify them in the background.
Prefer Telegram? Message @verifyportal_bot or email hello@verifyportal.app.