Official docs domain: https://gatekeeper.robbiesuprameme.xyz/docs
What Gatekeeper Does
It connects verified wallets, continuous ownership reconstruction, requirement checks, Discord roles, and governance exports in one operator workflow.
Wallet balances, NFT ownership, listings, transfers, stakes, locks, LP exposure, and supported protocol positions.
Wallet proof, indexed ownership data, gate rules, role reconciliation, and governance weighting.
Roles, permissions, action flags, audit history, live polls, and governance CSV exports.
A project links one Discord server, a target channel, gate admins, and gate rules.
A member signs a gasless message proving control of a SUPRA wallet.
The wallet is stored under the Discord member and project scope.
Robbie Wallet Inspector checks token, NFT, stake, lock, LP, and supported protocol data.
Matching roles are added automatically. Missing requirements become auto-removals or admin review flags.
Discord Surface
The public verify panel shows role requirements and opens a private verification link for each user. The command center lets project admins post panels, configure gates, and manage wallet registry entries.
Admin Model
The owner can create projects and promote super admins. Owners and super admins manage gate admins. Gate admins operate project dashboards, wallet registry checks, and action required decisions.
Use Cases
Gatekeeper is built for projects that need Discord access and governance to reflect real on-chain membership, not a one-time screenshot of a wallet.
NFT Community
Token Community
Mixed Requirements
Access Control
Use gates to keep holder chats, alpha rooms, council channels, and premium areas aligned with wallet ownership.
Governance
Use the selected governance gate to calculate voting power from the same requirements that define membership.
Continuous Ownership Reconstruction
Gatekeeper's strongest layer is not only wallet verification. It is the ability to continuously reconstruct ownership and re-evaluate requirements as wallets move assets.
RobbieBuyBot and Inspector data track supported token, NFT, LP, stake, lock, and protocol activity.
Holdings are reconstructed from events, snapshots, and verification scans instead of trusting a single manual check.
Roles and governance rows are recalculated when wallets are verified, gates change, or wallet activity is detected.
| Indexed behavior | Why it matters | Gatekeeper result |
|---|---|---|
| Holdings reconstructed | Projects do not depend on one stale wallet screenshot. | Gate checks use the latest available ownership state. |
| NFT listings tracked separately | Listing or unlisting should not be treated as a new acquisition. | NFT ownership and holding date logic remain stable. |
| Transfers followed | Moving an NFT or token can change eligibility immediately after detection. | Roles can be added, removed, or flagged for review. |
| Gate changes rechecked | Admins can create or activate a gate after wallets already exist. | Existing registered wallets are rescanned against the new requirements. |
| Governance shares the same data | Voting power should be derived from the selected gate, not a separate spreadsheet. | CSV exports include per-requirement voice columns and total weight. |
Operator Value
Gatekeeper reduces manual role work because access is continuously reconciled against ownership data. Admins still keep control through auto-remove settings, action-required flags, and history.
Wallet Registry
The registry is the source of wallets Gatekeeper is allowed to inspect for a project. A wallet can be added by user verification or by manual admin review.
| Stored item | Purpose | Notes |
|---|---|---|
| discord_user_id | Connects the wallet to one Discord member. | Role decisions are made per Discord member, not per wallet alone. |
| guild_id / project_id | Scopes the wallet to the correct Discord server and project. | A project wallet does not automatically leak into another project. |
| wallet_address | The SUPRA wallet address to inspect. | Stored lowercase and rechecked through Robbie Wallet Inspector. |
| source | Shows whether it came from wallet verification or manual admin entry. | Manual entries also trigger a background role recheck. |
| status | Controls whether the wallet is active. | Removing a wallet marks it inactive, then queues a member recheck. |
After Registration
Gatekeeper confirms the wallet connection first, then scans holdings in the background. Once the scan finishes, it can DM the user with the roles reached.
Wallet Unlink
If a member tries to verify a wallet that is already active in the project registry, Gatekeeper shows a confirmation popup instead of silently replacing anything. The popup displays the wallet address, the linked Discord account, and two choices: Unlink or Cancel.
Same Discord User
When the wallet is already linked to the same Discord member, Unlink is available. Gatekeeper marks that wallet inactive and queues a role recheck for that member.
Another Discord User
If the wallet is linked to another Discord member, Gatekeeper protects the existing link. The popup can identify the linked account, but the current member cannot unlink somebody else's wallet.
Role Recheck
After unlink, Gatekeeper scans the remaining active wallets for that member. Roles can be removed, left unchanged, or flagged for admin review depending on the gate's auto-remove setting.
| Step | What happens | Why it matters |
|---|---|---|
| Verify attempt | The member connects StarKey or Ribbit and signs the normal gasless Gatekeeper message. | The signature proves control of the wallet before any registry change is allowed. |
| Existing link check | Gatekeeper checks the active wallet registry for the current guild and project. | The bot can tell whether the wallet is already linked, and to which Discord user. |
| Unlink confirmation | The popup shows the wallet and Discord account before the member clicks Unlink. | The user sees exactly what will be changed and can cancel safely. |
| Signed unlink | The unlink request reuses the signed wallet proof from the popup flow. | A copied verification link or Discord session alone is not enough to unlink a wallet. |
Why Sign Before Unlink?
Unlink is a security-sensitive action because it can affect access roles. Gatekeeper requires the same wallet signature used for verification so the server can prove the person asking for unlink controls the wallet address. This prevents someone with a leaked verification URL, a shared browser session, or Discord access alone from unlinking a wallet they do not own.
Gate Rules
A gate rule maps one Discord role to one or more required assets. Each gate can be edited, disabled, deleted, and rechecked against already registered wallets.
ALL Mode
Every required asset in the gate must pass for the member to receive the role. The number field is ignored in ALL mode.
OR Mode
The member must pass the configured number of required assets. For example, 2 means any two assets in the gate can unlock the role.
Auto Remove
When enabled, Gatekeeper removes the role automatically if a member no longer matches. When disabled, it creates an action required flag.
| Field | What it controls |
|---|---|
| Discord role | The role Gatekeeper adds or removes when the rule result changes. |
| Required asset | A token or NFT collection plus its minimum quantity. |
| Assets required mode | ALL for every asset, OR for a configurable number of passing assets. |
| Number of assets required | Only used in OR mode. Empty values are rejected in OR mode. |
Scanner Modules
Gatekeeper asks Robbie Wallet Inspector to scan registered wallets with read-only checks. The inspector receives wallet addresses and configured asset requirements, then returns matching rows, ownership totals, and module-specific details that can be reused by roles and governance.
| Module | What is checked | How it affects gates |
|---|---|---|
| Wallet balances | Liquid token balances held directly by the wallet. | Counts toward token minimums. |
| Staking positions | Supported stake balances returned by Robbie Wallet Inspector, including known providers such as Atmos, Spikey, Pecky, and related SUPRA ecosystem stake sources when present. | Can be included in the total used for token gates. |
| LP positions | Supported liquidity positions, LP locks, LP pair values, and protocol LP rows returned by the inspector. | Can count toward token exposure when the inspector maps the position to the configured asset. |
| Locked tokens | Token locks, vault-style locks, and supported locked balances. | Can count toward token minimums when returned by the inspector. |
| Burned / special balances | Burn rows and other supported non-liquid holdings returned in scan output. | Shown in scan details and included when supported for the selected asset. |
| NFT collections | Collection creator/address based NFT checks, with collection metadata when available. | Counts collection ownership against NFT gate requirements. |
Important
Gatekeeper does not move funds and does not ask wallets for private data. It delegates read-only holding inspection to Robbie Wallet Inspector through a server-side API key.
Live Checks And Scheduled Scans
Verification Scan
After a user signs the wallet proof, Gatekeeper queues a scan and applies matching roles when the result is ready.
Admin Changes
Creating or editing a gate, adding a required asset, or removing a wallet queues rechecks for existing registered wallets.
RobbieBuyBot Events
When RobbieBuyBot detects wallet activity, it can notify Gatekeeper through the protected internal endpoint and trigger a targeted wallet recheck.
| Trigger | Scope | Result |
|---|---|---|
| Wallet verification | One Discord member in the current project. | Role add, action required flag, or no change. |
| Manual wallet entry | One Discord member in the current project. | Same role reconciliation as wallet verification. |
| Gate rule change | Registered wallets for that project. | Existing members are checked against the new rule. |
| RobbieBuyBot wallet event | Registered users holding the event wallet. | Fast recheck after detected activity. |
| Scheduled scans | Batch targets from active wallets and gates. | Periodic reconciliation for token and NFT checks when monitoring is enabled. |
Governance Vote Export
Governance export lets project super admins turn a Discord proposal poll into a CSV for Google Sheets. Gatekeeper reads the voters, maps each voter to verified project wallets, scans the configured gate requirements, and outputs one row per voter wallet with per-requirement voice columns and a total_weight column.
Best Flow
Reply directly to the proposal message with a real bot mention from Discord autocomplete, then governance. Gatekeeper reads the referenced poll or reacted message and sends the CSV by DM.
Menu Flow
Open the proposal message menu, choose Apps, then Export governance CSV. This is the most precise UI when available in Discord.
Slash Fallback
Use /governance message_id:<id> when you need an explicit message. Without a message ID, the command uses the latest poll or reacted message in the channel.
| Capability | How it works | Important detail |
|---|---|---|
| Discord native polls | Gatekeeper fetches voters for every poll answer. | The exported response column contains the selected answer text, such as yes or no. |
| Emoji reactions | If the message is not a native poll, Gatekeeper falls back to message reactions. | The exported response column contains the emoji label. |
| Wallet mapping | Each Discord voter is matched against active wallets in the current Gatekeeper project. | If a user has several verified wallets, the CSV contains one line per wallet. |
| Asset columns | Gatekeeper creates one total <asset> column for each asset configured across active gates, plus the selected governance gate when needed. | OR gates still expose every asset column, even when only one asset is needed to match the gate. |
| Voice weighting | Governance settings can select one gate as the vote weight gate and set a multiplier per requirement. When Weight vote is on, Gatekeeper creates one voice <requirement> column per requirement using holding / minimum * multiplier. NFT acquired-date weighting is currently locked as #SUPRASOON. | Example: 1 Guardian with multiplier 1 gives 1 voice; 1 Sentinel with multiplier 5 gives 5 voices. Holding-date weighting will stay disabled until the historical NFT held-since index is fully ready. |
| Batch scanning | Wallets are sent to Robbie Wallet Inspector in batches of 30 per gate. | This keeps large votes stable and avoids one huge inspector request. |
CSV Shape
The first CSV line stores the vote question once. The table then starts with discord_name, discord_id, wallet, every total <asset> column, each weighted voice <requirement> column, total_weight, and response.
Who Can Export
Only the Gatekeeper owner or a project super admin can export governance votes. Regular gate admins can operate gates, but governance export is intentionally more restricted.
Gatekeeper Polls
Project Gatekeeper admins can use /poll to open a Discord-style poll editor. Gatekeeper creates a native Discord poll so voters get Discord's per-user selection state, mobile layout, and automatic closed-poll result message. When weighted voting is enabled, Gatekeeper adds a separate weighted results panel that reads the native poll voters and applies the selected governance gate and requirement multipliers. NFT acquired-date weighting is #SUPRASOON until the historical held-since index is ready.
Discord Composer Limit
Discord's native plus-menu Poll composer is not exposed as a custom bot entry point. Gatekeeper uses a modal editor from an app command, then posts the poll through Discord's native poll API.
| Example output | |||||
|---|---|---|---|---|---|
| question | works? | ||||
| discord_name | discord_id | wallet | total Sentinel | total Guardian | response |
| cryptofan.supra | 123456789 | 0xabc... | 2 | 1 | yes |
| vik.member | 987654321 | 0xdef... | 0 | 1 | no |
Discord Permissions
The bot needs View Channel, Read Message History, Send Messages, and Attach Files in the proposal channel. !governance also requires Message Content Intent, so a real @Gatekeeper mention is the recommended reply command.
Role Actions And History
Gatekeeper keeps action history for role additions, removals, recovered flags, and admin decisions. This makes moderation decisions visible after the moment has passed.
Role Added
If a scan matches a gate and the member lacks the role, Gatekeeper adds it and records an applied add action.
Role Removed
If auto remove is enabled and the member no longer matches, Gatekeeper removes the role, posts a report, and records history.
Action Required
If auto remove is disabled, Gatekeeper posts a flag in the target channel so admins can apply or ignore the removal.
Recovered Flags
If a wallet buys again and matches before an admin intervenes, Gatekeeper marks the pending flag as recovered, updates the Discord notification, and keeps the original event plus the recovery explanation in history.
Terms of Use
Last updated: May 31, 2026. These terms describe how Robbie Gatekeeper may be used by Discord server owners, project administrators, and members who verify wallets.
Service Scope
Gatekeeper provides Discord wallet verification, role requirement checks, role synchronization, governance poll support, and CSV export tools. It is an operational tool for community access management, not a wallet, exchange, custodian, broker, or financial advisor.
Read-Only Verification
Wallet verification asks members to sign a read-only ownership message. Gatekeeper must never ask for a seed phrase, private key, wallet recovery phrase, or transaction approval for verification.
Admin Responsibility
Server owners and project admins are responsible for configuring roles, requirements, governance settings, and permissions correctly. Admins should review sensitive actions and make sure their Discord server rules explain how access is granted or removed.
User Responsibility
Members are responsible for confirming they are on the official Gatekeeper domain, using their own wallet, and understanding that wallet holdings can affect Discord roles or voting power according to the project configuration.
| Topic | Terms | Practical meaning |
|---|---|---|
| No custody | Gatekeeper does not custody assets and does not control user wallets. | Verification is based on wallet ownership proof and public/on-chain or indexed holdings. |
| No financial advice | Gatekeeper output is not investment, tax, legal, or trading advice. | Role or voting access should not be treated as a recommendation to buy, sell, hold, or transfer assets. |
| Data used | Gatekeeper may store Discord IDs, wallet addresses, project settings, scan summaries, role action history, governance poll data, and admin decisions. | This data is used to operate verification, roles, monitoring, action review, and governance exports. |
| Accuracy | Gatekeeper relies on Discord APIs, RPC/indexer data, configured requirements, and supported scanner modules. | Results can be delayed or incomplete when external services, permissions, or chain data are unavailable. |
| Availability | The service is provided on a best-effort basis and may be interrupted for maintenance, rate limits, outages, or security reasons. | Admins should keep emergency/manual access procedures for critical communities. |
| Prohibited use | Do not abuse the service, bypass access controls, submit fraudulent wallet proofs, attack infrastructure, scrape excessive data, or use Gatekeeper for illegal activity. | Access may be restricted or removed when abuse is detected. |
| Changes | Features, scanner coverage, terms, and safety guidance may change over time. | Continued use after updates means the updated terms apply. |
Important Safety Rule
If any page, bot, admin, or message asks for your seed phrase, private key, or a transaction approval just to verify ownership, stop immediately. That is not the Gatekeeper verification flow.