Skip to content

Privacy policy

What this service does with personal data, why, on what legal basis, and for how long.

Last updated 2026-09-04

1. Who is responsible

Titan Software z.s. (zapsaný spolek (registered association)), established in Czech Republic, operates Sentinel Anti-Raid and is the controller for the processing described in section 5.

  • Registered seat: Ametystová 702/46, Praha 16 – Radotín, 153 00, Czech Republic
  • Company ID (IČO): 29738725
  • Website: https://titansoftware.eu
  • Privacy contact: [email protected]
  • Data protection officer: none appointed. Privacy enquiries go to the address above.

For processing carried out on the instructions of a server administrator — described in section 6 — Titan acts as a processor and the administrator is the controller. The distinction matters, so both are set out explicitly rather than left to inference.

2. Two groups of people

This service processes data about two different groups, with different relationships:

  • Dashboard users. People who sign in to configure protection for a Discord server. You have an account and an agreement with us.
  • Server members. People in a Discord server that uses this service. You have no account and no agreement with us, but the service processes data about you on the instructions of that server's administrators — and, for the shared threat lists in section 6, on our own. Your rights (section 8) apply in full either way.

3. What we do not do

  • No advertising, analytics or tracking. The site loads no analytics product, no tag manager, no advertising pixel, no session-replay tool and no fingerprinting. Web fonts are compiled into the site at build time, so loading a page makes no request to Google or any other third party.
  • No selling or sharing for marketing. Personal data is never sold, rented or disclosed for anybody's marketing.
  • No passwords. Sign-in goes through Titan Auth and Discord; we never receive or store a password.
  • No raw IP addresses. Only a keyed hash is stored, which cannot be reversed into an address without our encryption key.
  • No voice audio, and no message content unless a server turns it on. See section 5.3 — this is described accurately rather than absolutely, because it depends on a setting.

4. Legal bases we rely on

  • Contract (Art. 6(1)(b) GDPR) — your account, the dashboard, the API, and plan entitlements. Without this data the service cannot be provided.
  • Legitimate interests (Art. 6(1)(f)) — detecting and stopping raids, nukes, spam and account takeovers; keeping an audit trail; preventing abuse of the service itself; and operating the shared threat lists. Where we rely on this we have weighed our interest, and the interest of the servers we protect, against the effect on the people concerned. You may object at any time (section 8).
  • Legal obligation (Art. 6(1)(c)) — where we must retain something to comply with the law.

We do not rely on consent for anything described here. There is therefore no consent for you to withdraw, and no cookie banner: the storage described in section 10 is either strictly necessary or a preference you set yourself.

5. What we process, why, and for how long

5.1 Dashboard accounts

Personal data processed for dashboard accounts
DataPurposeBasisRetention
Titan Auth subject, email, display nameSign-in and account identityContractUntil you erase your account
Discord user ID, username, display name, avatar, localeIdentity, resolving which servers you administer, audit attributionContractUntil you erase your account
Discord and Titan access/refresh tokens (encrypted)Reading your list of manageable serversContractReplaced on each sign-in; deleted on erasure
Session record, hashed IP, browser user agentKeeping you signed in, and letting you revoke a sessionContract; legitimate interests (security)30 days after the session expires or is revoked
Sign-in and sign-out history (hashed IP, user agent)Investigating account compromiseLegitimate interests12 months
Terms and privacy version you accepted, with timestampEvidence of the agreement between usContract; legal obligationUntil you erase your account

5.2 Server protection (on the administrator's instructions)

Personal data processed to protect a Discord server
DataPurposeBasisRetention
Server ID, name, icon, owner ID, member count, bot permissionsIdentifying the server and checking the bot can actContractUntil the server is deleted
Member Discord IDs and usernames involved in a detection, account age, avatar presence, invite used, risk score and the action takenDetecting raids and attributing destructive actionsLegitimate interests of the serverPer the server’s plan (14 days to unlimited); abandoned cases pruned after 90 days of inactivity
Auto-moderation hits: member ID, username, channel, message ID, rule matched, actionEnforcing the server’s content rules and showing moderators what happenedLegitimate interests of the server90 days
One-way fingerprint of normalised message textSpotting duplicate and cross-channel spam without keeping the messageLegitimate interests of the server90 days
Verification records: member ID, hashed IP, user agent, account ageGating new members behind a verification stepLegitimate interests of the server90 days
Server structure snapshots, including per-member channel permissionsRestoring a server after a destructive attackLegitimate interests of the server180 days, and a per-plan limit on how many are kept
Audit records: who changed what, when, with a redacted diff, hashed IP and user agentAccountability for configuration and moderation changesLegitimate interests; accountability (Art. 5(2))Per the server’s plan
FiveM server host, port and availability historyMonitoring server availabilityContract30 days

5.3 Message content — read this if a server enables message protection

Message-level protection is off by default and requires a privileged Discord permission that a deployment has to enable deliberately. When a server administrator turns it on:

  • The bot reads message content in memory to evaluate scam-link, blocked-term, mass-mention and duplicate rules.
  • What is normally kept is a one-way fingerprint of aggressively normalised text. It cannot be turned back into the message.
  • A server may additionally opt in to keeping an excerpt of up to 300 characters of a message that triggered a rule, so a moderator can judge whether the rule was right. This setting is off by default. Where it is on, the excerpt has its own retention window — 14 days unless the server changes it — is deleted hourly rather than nightly, and turning the setting off deletes everything already held.
  • Content never appears in our logs, in notifications, or in webhook payloads — only the rule that matched and the reason it gives.

5.4 Blacklists and shared threat intelligence

A server can maintain a local deny-list of identifiers. Identifiers other than Discord IDs (FiveM licences, Steam IDs, IP addresses) are stored as a keyed hash plus an encrypted copy, and are never displayed. IP-address entries are restricted to a single server's local list by design and can never be shared.

A server may also opt in to two shared mechanisms. These are Titan's own processing, as controller, and are described in section 6.

6. Shared threat lists: what leaves your server

This is the most significant disclosure the service makes, so it is set out in full rather than summarised.

6.1 Community and global blacklists

  • Sharing happens only if a server administrator opts in, and only for servers whose plan includes it.
  • A submission from a server whose trust score is below the platform threshold is held for review by a Titan operator before it takes effect. A submission from a server above the threshold takes effect immediately.
  • Other subscribing servers receive the category, severity, corroboration count and first-seen date of a match. They do not receive the free-text reason written by the submitting server, and never receive a readable form of a sensitive identifier.
  • Entries expire. Inactive entries are deleted after 12 months.

6.2 Network early warning

  • Contributing is off by default and requires a server administrator to enable it. There is no operator review for these reports — they are gated instead by corroboration: a warning only carries weight once independent servers have reported the same target.
  • The target is stored as a keyed hash, never in the clear. The shared table cannot be read as a directory of who was punished where. An actor is never given a human-readable label.
  • Receiving warnings is on by default. A warning adds weight to a member's risk score in a subscribing server; it is presented to moderators as evidence, not as a verdict.
  • Warnings expire, and rows are deleted 90 days after expiry.

If you believe you are wrongly listed, you can contest it — see section 9.

7. Automated decisions

The protection engine can automatically remove, ban, time out or quarantine a server member, without a human reviewing each decision. You should know how that works:

  • The server administrator sets the thresholds and the actions, not us. Defaults are conservative and a monitor-only mode is available.
  • The logic is arithmetic, not machine learning. Named signals — account age, join rate, message rate, cross-channel repetition, permission changes, blacklist and network matches — carry fixed weights set by the server. When the total crosses a threshold, the configured action runs. There is no model and no inference.
  • Every decision keeps its own explanation: which signals fired, what each contributed, and the total. We can give you that explanation on request.
  • You can contest a decision and ask for a human to look at it — section 9.

8. Your rights

Under the GDPR you have the right to:

  • Access the personal data we hold about you, and receive a copy. Dashboard users can download their account record immediately from your account page. For data held about you as a server member, write to us and we will respond within one month.
  • Rectification of inaccurate data. Profile fields come from Discord and Titan Auth on each sign-in, so correcting them at the source updates them here. Anything we generated ourselves — a risk score, a blacklist reason — we will correct on request.
  • Erasure. Dashboard users can erase their account from the account page; a server owner can delete a server and all its data from that server's settings. What we keep afterwards, and why, is set out in section 8.1.
  • Restriction of processing, and objection to processing based on legitimate interests — including the shared threat lists.
  • Portability of data you provided under a contract, in a machine-readable format. The account export is JSON.
  • Not to be subject to a decision based solely on automated processing that significantly affects you — see sections 7 and 9.
  • Complain to a supervisory authority. In the Czech Republic that is the Úřad pro ochranu osobních údajů (ÚOOÚ), Pplk. Sochora 27, 170 00 Praha 7, Czech Republic. You may also complain to the authority where you live.

Write to [email protected]. We ask you to prove control of the account concerned before we disclose data about it — otherwise the access right becomes a way to obtain somebody else's data.

8.1 What survives an erasure, and why

Erasing an account removes your Discord and Titan identity, your email, your stored provider tokens, your sessions and your dashboard access, immediately and irreversibly. Two things are deliberately kept:

  • Audit records of actions you took on a server, with your identity stripped out. A server needs an accurate history of what was changed and by how many different people; these records are deleted on the schedule in section 5. This relies on Art. 17(3)(b) and (e).
  • Blacklist entries you submitted. An entry is a statement about somebody else, made for a server. Deleting it because its author left would silently remove protection that other communities rely on.

The remaining anonymous record is deleted entirely after 30 days. Backups follow their own rotation and age out separately.

9. Contesting a listing or an automated action

If you were removed from a server, added to a shared blacklist, or flagged by the network early warning and you believe it is wrong:

  • Run /appeal in any Discord server where this bot is present. That proves who you are through Discord, and files the appeal against your own identifier — you cannot appeal on somebody else's behalf.
  • Or write to [email protected] with the identifier concerned.

A Titan operator reviews the appeal. An upheld appeal revokes the entry and lowers the trust score of the server that submitted it. We will tell you the outcome and the reason.

10. Cookies and local storage

Four items in total, and no consent banner: three are strictly necessary to sign you in securely, and the fourth is a preference you set yourself.

Cookies and browser storage
NameTypePurposeLifetimeCategory
__Host-sentinel_sessionCookie (HttpOnly, Secure, SameSite=Lax)Keeps you signed in7 daysStrictly necessary
__Host-sentinel_csrfCookie (Secure, SameSite=Lax, readable by our own scripts)Blocks cross-site request forgery7 daysStrictly necessary
__Host-sentinel_oauthCookie (HttpOnly, Secure, SameSite=Lax)Ties a sign-in attempt to your browser10 minutesStrictly necessary
sentinel-themeLocal storageRemembers light or dark modeUntil you clear itPreference

We also hold short-lived operational state in Redis — rate-limit counters, risk scores, sign-in state — which expires automatically within minutes to an hour.

11. Who else receives data

A current list of the providers who process data on our behalf, what each receives and where it is located, is at subprocessors.

Discord. This service runs on Discord and cannot work without it. Every protective action — a ban, a kick, a role change, a channel edit — is sent to Discord with a reason, and notification messages containing member IDs are posted to channels you nominate. Discord Inc. is in the United States and is an independent controller for its own platform.

Other servers. Where a server opts into the shared lists in section 6, other subscribing servers receive what is described there.

12. Transfers outside the EEA

Our own infrastructure is described on the subprocessors page, including each provider's location and the safeguard relied on. Where a provider is outside the EEA we rely on an adequacy decision, the EU–US Data Privacy Framework, or Standard Contractual Clauses, and we say which on that page. You may request a copy of the relevant safeguard.

13. Security

Measures in place include: encryption in transit; authenticated encryption at rest for access tokens, webhook secrets, notification destinations and sensitive identifiers; hashing of API keys and session tokens; strict per-server data isolation; role-based access control with least privilege; two independent controls required for platform-operator access; an append-only audit trail; and automated vulnerability and secret scanning of our code. A summary is on the security page, including how to report a vulnerability.

14. Children

You must meet Discord's minimum age for your country to use Discord at all, and be at least 15 to use this dashboard. We do not knowingly create accounts for younger users. We cannot verify the age of a server member, and information addressed to members is written to be understandable without legal training. If you believe a child's data is being processed inappropriately, tell us and we will act.

15. Changes

This notice is versioned. The current version is 2026-09-04. When we make a material change we publish a new version and ask dashboard users to review it before continuing — your account records which version you accepted and when.

16. Contact

Not affiliated with Discord Inc. or Cfx.re. Discord and FiveM are trademarks of their respective owners.

Privacy policy · Sentinel Anti-Raid