← Back to Docs

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:

  1. A verified badge that appears on the user's profile in this dashboard.
  2. The ability to gate other features (currently Applications) so only verified citizens can use them.

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 in the dashboard (or runs /citizen verify in Discord). 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

  1. Open the Citizen tab on your guild's dashboard page.
  2. Toggle Verification enabled on.
  3. (Optional) Configure the reminder system — see below.
  4. Save.

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:YourHandle
/citizen verify

The bot DMs the user with their token and a link to their RSI profile's edit page. They paste the token into the Bio, save the RSI profile, then either click the Verify now button in the DM or re-run /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:

  1. On the dashboard's Citizen tab, set Reminder delivery to one of:
    • DM — send via direct message only
    • Channel — post in a designated channel only (with role mention to the member)
    • DM with channel fallback — try DM first, fall back to channel if DMs are closed
  2. Set the Reminder interval (days between reminders, 1–30).
  3. Set the Max reminder count (1–10, default 3) — when a member has been reminded this many times, they stop receiving reminders.
  4. (Optional) Customize the reminder message text.
  5. Save.

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_count is the hard stop.

Gating other features behind verified status

Some features can require verified-citizen status as a precondition. Currently this is implemented for Applications:

  1. Open the Applications tab.
  2. Toggle Require verified citizen on for any application type.
  3. Members who try to apply without verifying will see a "verify first" message and a link to start verification.

More features will support this gate over time — events RSVP, voice channel creation, and orders are all on the roadmap.

Troubleshooting

"Token not in bio" — The bot fetched the RSI profile but didn't find the token. Three common causes:

  1. The token was placed on a different RSI account than the one linked to Discord. Double-check that the handle in /citizen matches the one in the RSI URL.
  2. The RSI profile is set to private. The bot can only scrape publicly visible profiles.
  3. 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.