From join to verified in seconds
A calm, private flow that never asks members to leave Discord to get started — and never hands you an unexplained verdict.
- Step 01
A member joins
Vidar receives the join event and sends the new member a direct message with a one-time verification link. You can optionally apply an “unverified” hold role that restricts the server until they pass.
- Step 02
They open the checkpoint
The link opens a secure checkpoint page and authorizes with Discord via OAuth. This confirms the account really belongs to them — a bot cannot see a member's IP, so this consented web step is how network signals are gathered.
- Step 03
Signals are gathered — and hashed
At the checkpoint, Vidar derives a privacy-respecting device fingerprint and looks up the connection's network reputation. The IP is turned into salted, non-reversible hashes immediately; the raw address is never stored.
- Step 04
Evidence is scored
Network, device, account and cross-server link signals are combined into a 0–100 risk score and matched against known members. The result includes a plain-language reason for every contributing signal.
- Step 05
A decision is made
Below your approve threshold, the member is given the verified role instantly. Above your deny threshold — or matching a banned alt — they're blocked. Anything in between is held for moderator review.
Top alt match
81%
shares device + network
An example verdict a moderator sees — held for review, with the full reasoning.
Because a bot can't see an IP
Discord never exposes a member's IP address to a bot. The only privacy-respecting, consent-based way to gather network and device signals is a web page the member chooses to open — exactly what the checkpoint is. It authorizes with Discord OAuth so the account is provably theirs, gathers signals, and immediately discards anything raw.