Discord moderation · perceptual hashing

Every image has a fingerprint.

ImageCheck fingerprints every image and video posted in your server and blocks the ones your trusted communities have flagged — automatically, before your moderators have to see them again.

free · slash commands only · nothing stored but hashes

How it works

Scan. Hash. Enforce.

ImageCheck watches attachments, link previews, and media links in message text. Each item is reduced to a 64-bit perceptual hash and compared against your server's blocklists — in memory, in milliseconds.

01 · scan

Every new or edited message is checked for media: uploaded files, Tenor/Giphy-style embeds, and bare image links pasted as text. Messages without media are ignored instantly.

02 · hash

Media is downloaded, fingerprinted, and discarded. The fingerprint survives recompression and resizing, so re-uploads of a blocked image still match. Videos are fingerprinted at two points of their runtime.

03 · enforce

On a match, the message is deleted and the action your admins chose for that category runs: a warning DM, a timeout, or a ban — with a full audit embed in your private log channel.

blocklist entry

same image, re-uploaded

recompressed · resized · re-posted

hamming distance: 3
threshold: 5
blocked

Exact-match filters are trivial to beat with one screenshot. Perceptual fingerprints barely move — three flipped bits out of sixty-four is still the same image.

Federation

Blocklists are shared, not siloed.

A scam image seen in one community shouldn't have to be re-discovered by every other one. Blocklists are first-class objects that servers curate together — with consent and control built in.

Own it

Your server creates lists and owns them. Contributors you trust can add entries; subscribers get read-only protection. Every entry is tagged with a reason (harassment, spam, nsfw…) that carries the enforcement action.

Share it — with consent

Invites are two-sided: the other server must accept before it joins. Public lists can be browsed and self-subscribed. Shareable join codes with expiry and use limits make onboarding partners easy.

Stay in control

Subscribers cap how severe a shared list's actions can get, override or disable any tag, and rank their lists so the right one wins on conflicts. A bad upstream never gets to ban your members.

Built for real moderation

The details that matter at 3 a.m.

Tags carry the action

Block reasons are structured, not free text. Each tag has a default action (log, warn, timeout, ban); the most severe enabled tag wins. Retag an entry and enforcement follows.

Video fingerprinting

Videos are hashed at 25% and 75% of runtime and match on either frame. A per-list noise deny-list stops channel logos and stock intros from causing false positives.

Edit-proof scanning

Link embeds populate after the message posts, and users edit links in later. ImageCheck re-scans on both, so the delayed-embed trick doesn't slip media past it.

Role tiers

Helper, mod, and admin tiers gate every command, configured by the /imgsetup wizard. Discord administrators always retain access — no lock-out states.

Actionable log embeds

Every block posts an embed with the matched entry, the reason, and modify/remove buttons — moderate the blocklist from the log channel without leaving Discord.

Safe lists to trust

Whitelist trusted users and roles to skip scanning; exempt staff so their posts are removed but never punished. Dry-run commands (/imgblock test, /imgblock scan_recent) preview matches before enforcement.

Privacy

Built to know as little as possible.

  • No message text, images, or usernames are ever stored. The database holds 64-bit fingerprints and numeric Discord IDs — an image can't be reconstructed from its hash.
  • Everything expires. Enforcement records auto-delete after 90 days, audit logs after a year, and a server's data is purged ~30 days after the bot is removed.
  • Encrypted at rest. The database and its backups live on an encrypted volume.
  • This site is static. No cookies, no analytics, no third-party requests — not even fonts. Full details in the privacy policy.