OtterFi

Verify

Verify automatically controls who can access your Telegram group or Discord community based on real on-chain ownership. No manual role management. No custody. No spreadsheets.

Product overview

A community sets one Access Policy: a rule (or set of rules) describing what a wallet needs to hold. A member proves they control a wallet, Verify checks that wallet's real holdings directly against the chain, and access is granted or denied automatically.

Verify never asks anyone to hand over a private key or sign a transaction that moves funds - see Security for exactly how ownership is proven.

How Verify works

Supported platforms

Verify runs as a native bot on both Telegram and Discord. The two are configured and run independently - a community can use either or both.

Desktop and mobile verification

Both verification methods are always available on both desktop and mobile - it's a recommendation, not a capability limit:

  • Desktop users usually prefer Connect Wallet.
  • Mobile users often prefer Verify without connecting, because it's smoother - it avoids app-switching into a wallet app and back.

Wallet ownership verification

Verify offers two equally valid ways to prove ownership of a wallet:

Connect Wallet

  • Fastest on desktop
  • Sign a standard wallet message
  • No funds move
  • No custody

Verify without connecting

  • Ideal on mobile
  • Send a tiny amount to yourself
  • No wallet connection required
  • No funds leave your wallet

Both methods only ever prove ownership. Neither one gives OtterFi custody of anything.

Live Membership

Live Membership keeps community access synchronized with real blockchain ownership automatically. Instead of waiting for the next scheduled check, a qualifying purchase or a disqualifying sale is picked up from on-chain activity and triggers an immediate re-check.

DirectionTypical timeWhy
Access removed~1 minuteDispatched immediately - a false removal self-corrects on the next check anyway.
Access granted~3-20 minutes, depending on chainWaits for the chain's own confirmation depth first, so a purchase that gets reversed by a chain reorg never briefly grants access it shouldn't have.

Note

Live Membership is opt-in per community and off by default. Discord admins turn it on with /live_membership enabled:true; Telegram admins turn it on from the Community Console. Turning it off never revokes anyone - it only stops the faster, event-driven checks.

Automatic role assignment and removal

Whenever a wallet is checked - on a schedule, on a manual re-check, or via Live Membership - and it satisfies the Access Policy, Verify grants the configured Grant Target: a Discord role, a Discord channel, or a one-time Telegram group invite.

If a wallet no longer satisfies the policy - the member sold or transferred out - access is removed the same way, automatically, without an admin doing anything.

Supported chains

The same verification experience works across every supported chain.

Chain
Robinhood Chain
Base
Ethereum
Polygon
Optimism
Arbitrum One
Ink
ApeChain

Note

Solana verification is also available - wallet and NFT ownership checks, including Metaplex Core NFTs - included on Pro and Premium.

Community Console

What it is

On Telegram, every admin action lives in one place: the Community Console, reached from the bot's DM.

What you can do

Edit your Access Policy, pause or resume verification, delete the community, and toggle Live Membership - all from the same screen.

Why buttons instead of slash commands

Telegram has no typed admin commands beyond starting a chat with the bot; everything is a button tap. It's a deliberate design choice - see Administration.

Commands

Discord uses real slash commands, shown below. Telegram is entirely button-driven - the equivalent Telegram action is the corresponding Community Console button.

/community

What it does
Registers this server as a Verify community.
When to use it
Once, the first time you set up Verify on a new server.
Example
/community
Result
Confirmation that this server is now a Verify community, ready for /policy.

/policy

What it does
Opens the Access Policy builder and sets the Grant Target.
When to use it
To set your access requirement for the first time, or change it later.
Example
/policy role:@Holder
Result
A step-by-step builder for your requirement, ending with the Grant Target (here, the Holder role) confirmed.

/portal

What it does
Posts the standing verification message to a channel.
When to use it
Once your Access Policy is set, to give members somewhere to verify.
Example
/portal channel:#verify
Result
A verification message posted in #verify with a button members tap to start.

/verify

What it does
Starts wallet verification for whoever runs it.
When to use it
A member wants to check or prove their wallet - works in a server or by DM.
Example
/verify
Result
A private link to prove wallet ownership.

/reverify

What it does
Re-checks the caller's own wallet right now.
When to use it
Right after a purchase, instead of waiting for the scheduled check.
Example
/reverify
Result
Access is granted or removed based on your wallet's current holdings, immediately.

/pause · /resume

What it does
Freezes or reactivates access checks for the community.
When to use it
Temporarily stopping grants/revokes without losing your configuration.
Example
/pause
Result
No member's access changes until /resume is run.

/live_membership enabled:true|false

What it does
Turns Live Membership on or off.
When to use it
To enable faster, event-driven access updates instead of the hourly schedule.
Example
/live_membership enabled:true
Result
Future ownership changes are picked up automatically, without waiting for a full re-check cycle.

Most communities only use /community, /policy, and /portal during setup. Members typically only ever use /verify and /reverify.

Access Policies

An Access Policy is one or more requirement groups, combined with OR logic - a wallet qualifies if it satisfies any one group. Within a group, every requirement listed must be true (AND logic). Each individual requirement is either:

  • An NFT requirement - hold at least a minimum quantity of a specific collection.
  • A token requirement - hold at least a minimum balance of a specific token.

Two real examples:

ExamplePolicyMeaning
1NFT Collection A AND 100 TOKENA wallet needs both the NFT and at least 100 of the token.
2NFT Collection A OR NFT Collection BA wallet needs either collection - one is enough.

A community has exactly one Access Policy at a time; editing it updates every future check immediately.

Reverification

Beyond Live Membership's event-driven checks, every wallet is re-checked on a regular schedule automatically, and any member can trigger an immediate re-check themselves with /reverify on Discord or the equivalent Community Console action on Telegram - useful right after a purchase if you don't want to wait.

Verification flow

Security model

Verify never takes custody of funds and never asks for a private key. At no point does OtterFi gain access to your wallet or your funds. Read the full Security page for exactly how both verification methods work and what data is stored.

FAQ

Can a member link more than one wallet?

Not today - each member has one verified wallet at a time. Verifying again with a different wallet replaces the previous one.

Can one wallet verify multiple communities?

Yes - a wallet is checked independently against every community's own Access Policy.

Can an admin force a reverification?

There's no way to force-check every member at once today; each member re-checks their own wallet with /reverify or the Community Console.

What happens if someone transfers their NFT?

Access is removed automatically on the next check - immediately with Live Membership enabled, or on the next scheduled check otherwise.

How long does verification usually take?

The first check happens immediately once a member proves ownership. Ongoing re-checks follow the schedule or Live Membership timing described above.

Can members verify again later?

Yes, any time - with a different wallet, or the same one.

What happens if I turn off Live Membership?

Nothing is revoked. The community falls back to scheduled re-checks and manual reverification only.

Does Verify support ERC-1155 collections?

Not currently - collection auto-detection is scoped to ERC-721 and ERC-20 today.

Is there a cost to verify?

Verifying without connecting a wallet involves sending a tiny, self-transfer transaction, so the only cost is your own chain's network fee for that transaction - never a fee to OtterFi.