// Guide
Citizen Verification
Bio-token RSI ownership proof, scheduled reminders for unverified members, and how to gate other features behind verified status.
Citizen Verification proves that a Discord user actually controls the RSI account they claim. It's free, takes about 30 seconds per user, and unlocks two things:
- A verified badge that appears on the user's profile in this dashboard.
- The ability to gate other features behind verified status — Applications can require a verified citizen before members may apply, and Rules Verification can require a linked RSI account before the agree button works.
Want your verification to be visible to other communities and queryable by other sites? See Public Citizen ID.
How it works
StarBot generates a single-use 8-character token like RSI-VERIFY-K7M3DXAQ. The user pastes it into the Bio section of their RSI profile, then clicks Verify now (or re-runs /citizen verify). The bot scrapes their public RSI profile page and checks for the token. If present, the user is marked verified and the token is cleared.
Tokens last 24 hours. If a user lets one expire, they can generate a new one anytime.
The match is case-insensitive and uses a 31-character alphabet that excludes 0, 1, I, L, O — characters that are easy to mistype when copying.
Enabling verification for your guild
Citizen verification lives on the Citizen Data card of the Features tab — there is no separate "Citizen tab".
- 1
Open the Features tab. It's the default tab on your guild's dashboard page at
/dashboard/your-guild. - 2
Find the Citizen Data card and toggle it on, then click Configure to open the settings modal.
- 3
Check "Enable bio-token verification + reminders" in the modal's Verification + Reminders section. Optionally set an Allowed Role at the top if you want to restrict citizen commands to a specific role.
- 4
(Optional) Configure the reminder system — delivery style, channel, interval, cap, and message. Details in the reminder section below.
- 5
Click Save Changes. Members can start verifying immediately.
Here's the modal you're configuring:
1–90 days between reminders
1–20; reminders stop after this many
Everything in this modal can also be set with /config-citizen settingsadmin — both write to the same settings. Use /config-citizen viewadmin to see the current configuration.
Verification works server-by-server. A user verified in one guild stays verified in that guild specifically; verifying in another guild is a separate action.
Member self-service
Members have two paths to verify, whichever they find faster:
Path A — Discord slash commands
citizen set handle:YourHandlecitizen verifyThe bot replies privately with the token, a link to the RSI profile edit page, and the expiry time. The member pastes the token into their RSI Bio, saves the RSI profile, then clicks the Verify now button (or re-runs /citizen verify).
Path B — Dashboard profile page
Go to trystarbot.com/profile, log in. The Citizen Verification card shows the user's linked handle and a Start Verification button. Same flow — paste the token into the RSI bio, click Verify now. The token displays in a copy-friendly code block.
Reminder system
If you've enabled verification and want unverified members to be nudged automatically, configure the Verification + Reminders section of the Citizen Data modal:
- Set Reminder delivery to one of:
- DM only — send via direct message only.
- Channel only (mention user) — post in a designated channel, mentioning the member.
- DM with channel fallback — try DM first, fall back to the channel if DMs are closed.
- Pick a Reminder channel (required for the two channel-based modes).
- Set the Interval (days) between reminders — 1 to 90.
- Set Max reminders — 1 to 20. When a member has been reminded this many times, they stop receiving reminders.
- (Optional) Write a Custom reminder message.
- Save Changes.
The bot's reminder poller runs hourly and processes at most 5 guilds per tick at 50 DMs per tick total, so very large servers may take a few hours to cycle through all unverified members on the first run.
The reminder counter increments regardless of whether the DM actually delivers. This prevents members with closed DMs from being retried every hour forever — Max reminders is the hard stop.
Gating other features behind citizen status
Two features can use citizen status as a precondition:
- Applications — on the Features tab, open the Applications card's Configure modal and check "Require verified RSI citizen to submit applications". Members who try to apply without verifying see a "verify first" message telling them to run
/citizen verify. (A linked handle is always required to apply; this checkbox additionally requires full verification.) See the Applications guide. - Rules Verification — the Rules Verification card has a "Require Citizen link before verifying" checkbox. This requires a linked RSI handle (not full bio-token verification) before the agree button grants the role. See the Rules Verification guide.
Troubleshooting
"Token not in bio" — The bot fetched the RSI profile but didn't find the token. Three common causes:
- The token was placed on a different RSI account than the one linked to Discord. Double-check that the handle in
/citizenmatches the one in the RSI URL. - The RSI profile is set to private. The bot can only scrape publicly visible profiles.
- RSI hasn't propagated the bio edit yet — wait 30 seconds and try again.
"Token expired" — The 24-hour TTL ran out. Run /citizen verify or click Start Verification again to generate a fresh token.
"Could not find RSI profile" — The handle doesn't exist on RSI, or there's a typo. Use the exact handle as it appears in your RSI account URL.
Rate limited — The dashboard's verify action enforces a 10-second cooldown per user to prevent spamming RSI's servers. Wait a few seconds and try again.
Related
- Public Citizen ID — publish your verified profile at starbotid.space and control what's visible.
- Applications — recruitment forms that can require a verified citizen.
- Rules Verification — agree-to-rules role gate that can require a linked RSI account.
- Command reference — all citizen commands with arguments and scopes.