ImageCheck (“the bot”) is a Discord moderation bot that automatically detects and removes media (images, GIFs, videos) matching blocklists curated and shared by participating Discord servers. It is operated by an independent developer (“the operator”). This policy explains what data the bot processes, what it stores, for how long, and who can see it.
Server administrators choose to add the bot to their server. If you are a member of a server that uses ImageCheck and have questions about why it is enabled there, please contact that server's moderators first.
What the bot processes
To do its job, the bot inspects each message posted in servers where it is installed, using Discord's Message Content intent. Specifically it looks at:
- file attachments,
- link-preview embeds, and
- message text, solely to find media links (e.g. an imgur or Tenor URL).
Media found this way is downloaded, reduced to a perceptual hash (a short numeric fingerprint of what the image looks like — the image cannot be reconstructed from it), compared against the server's subscribed blocklists in memory, and then discarded. Messages containing no media are ignored immediately.
The bot never stores your message text, your images or videos, or your username. Temporary video files created during processing are deleted as soon as hashing completes.
What the bot stores
The bot's database stores Discord numeric IDs (user, server, channel, message, role IDs) and perceptual hashes — nothing else. By category:
| Data | Purpose | Retention |
|---|---|---|
| Enforcement records: server, channel, message, and author user ID of each blocked post, the matching hash, and the action taken | Moderation audit trail for the server; daily statistics | Deleted automatically after 90 days (default) |
| Scan telemetry: per-server counts, sizes, and timings of scanned media (no user IDs) | Operational health dashboard | Deleted automatically after 14 days (default) |
| Server configuration: log channel, thresholds, role tier settings, whitelist/exemption lists (user and role IDs added by that server's admins), and invite-block settings | Running the bot as the server configured it | Kept while the server uses the bot; deleted automatically about 30 days after the bot is removed from the server (sooner on request) |
| Blocklist entries: perceptual hashes, tags, an optional free-text reason, and the ID of the moderator and server that added each entry | Operating the shared blocklists; accountability for what gets blocked | Kept until the entry or list is deleted |
| Audit logs of blocklist and sharing activity: which moderator (user ID) added/edited/ removed entries or sent/accepted list invites | Abuse prevention and accountability across the shared-list network | Deleted automatically after 1 year (default); until then, records survive deletion of the related list. Invite codes that have expired are removed after 30 days |
Who sees what
Within your server: when media is blocked, the bot posts a log embed to the server's configured log channel identifying the user, channel, and action. A copy of the blocked image may be attached to that log embed as moderation evidence (this is disabled for blocklist categories marked sensitive). Log embeds posted to Discord persist like any Discord message and are under that server's control. The affected user receives a DM explaining the removal, and timeout/ban reasons appear in that server's Discord audit log.
Across servers (list sharing): blocklists can be shared between servers. Subscribing servers receive only perceptual hashes and category metadata — never the blocked images, and moderator identity is not shown to other servers (entry activity is attributed at server level, e.g. “ServerName (ID)”). The exception is list invitations: when a moderator invites another server to a list, the invited server's log channel shows who sent the invitation. Public lists are discoverable by name, owning server, and entry count.
Third-party media hosts: when a message links media on an external site, the bot fetches that URL directly to scan it, so the site involved receives a standard download request from the bot's server.
The operator: the bot runs on infrastructure managed by the operator, who has administrative access to the database and to operational logs (which may contain media URLs, retained briefly under log rotation). An operational dashboard shows aggregate statistics only. No data is sold, shared with advertisers, or sent to analytics or other third-party services; the only external parties involved are Discord itself and, as described above, the hosts of media links users post.
Security
The database and dashboard are self-hosted, not publicly exposed, and accessible only to the operator. Outbound media fetches are filtered to block requests to private networks, and media size limits are enforced before download. The bot requests a single privileged Discord intent (Message Content) and does not collect member lists, presence/online status, or join/leave events.
Your rights
You may use the contact form to ask what data the bot holds that is associated with your Discord user ID, or to request its deletion. Deletion requests are honored except where a record is needed to prevent abuse of the service (for example, records of who added blocklist entries). When the bot is removed from a server, that server's configuration is purged automatically after a short grace period (about 30 days) — except that blocklists the server owns which other servers still subscribe to remain available to those subscribers, with the departed server's own settings erased. Server administrators may request earlier deletion the same way.
This website
imagecheck.net serves static pages plus a single contact-form endpoint. It sets no cookies, runs no analytics or trackers, and makes no third-party requests (not even for fonts). Contact-form submissions are delivered directly to the operator as a Discord message and are not stored on the web server; the form is rate-limited per IP address to prevent abuse. The web server keeps standard access logs (IP address, requested page, time) for operational security; they rotate automatically and are not shared with anyone.
Children
The bot is intended for use on Discord and by users who meet Discord's minimum age requirements (13, or higher where local law requires).
Changes
This policy may be updated as the bot evolves. The current version is always available at this page, and material changes will be noted in the project's changelog.