Discord Scam Image Detection: Why Exact-Match Blocking Stopped Working
Scammers reuse the same scam images with tiny edits to dodge detection. Here's how Airwavy's anti-scam system uses perceptual hashing to catch cropped, resized and re-uploaded scam images across every server.

If you run a Discord server of any size, you have seen the same scam three or four times. A fake Nitro gift. A crypto giveaway with a countdown timer. A screenshot of a "verification" page that leads somewhere it shouldn't. The account posting it often isn't a throwaway either. It's a real member whose account got compromised an hour ago.
The image barely changes from server to server. The file does.
That gap is the problem with how most tools handle Discord scam image detection, and closing it is what Airwavy's anti-scam system was built around.
The same scam, a hundred different files
Scammers reuse images because making a convincing fake takes effort and reposting one takes seconds. The same crypto giveaway graphic gets pushed across dozens of servers in a day.
What they change is the file. Re-save it in a different format and every byte shifts. Crop two pixels off the border. Resize the canvas from 1920 wide to 1900. Screenshot the screenshot. None of that changes what a human sees. All of it changes the file completely.
This isn't accidental. It is done specifically to get past detection that works on exact file matching.
What an exact hash actually checks
Most "known bad image" blocking runs on a cryptographic hash, something like SHA-256. Take the file, run it through the function, get a fixed string back. Same file in, same string out, every time.
That property is what makes it useless here. Cryptographic hashes are designed so that flipping a single bit produces a completely different output. That's a feature when you're checking a download hasn't been tampered with. It's a liability when you're trying to recognise a picture.
So a server blocks a scam image. The scammer re-uploads it with one small edit. New file, new hash, no match, message goes through. The block list was accurate for about as long as it took to open an image editor.
Perceptual hashing matches what the image looks like
Airwavy fingerprints scam images with perceptual hashing instead. A perceptual hash describes the visual structure of an image rather than its bytes. Two files that look the same to a person produce fingerprints that sit close together, even when the underlying data has nothing in common.
A copy that has been recompressed, cropped at the edges or resized still matches the original fingerprint. To escape it, the scammer has to change what the image actually looks like, and at that point they aren't reusing their scam graphic anymore. They're making a new one.
This layer isn't a model guessing at intent. It's a fingerprint comparison, which matters if you're comparing tools, because the behaviour is predictable. A known scam image and its near-duplicates get caught, and you can reason about why.
One confirmation protects every server
When moderators confirm an incident is a scam, Airwavy preserves the image as a durable evidence record. The fingerprint stays. It becomes part of a recognition network that grows every time a scam is confirmed anywhere on the platform.
In practice, a scam wave that hits a large server on Monday morning is already recognised by the time it reaches yours on Monday afternoon. You get the benefit of moderation work you didn't have to do.
Airwavy's staff team also maintains a global threat-intel panel that aggregates confirmed scam incidents across every server. Recognition isn't siloed per server. If it were, every community would be learning the same lesson separately and every campaign would get a fresh run at each one.
What your staff sees when something is flagged
Detection is only half of it. A flag nobody can act on is a log line.
When the anti-scam system flags a message, Airwavy posts a structured alert to your staff with:
the flagged user
the channel it was posted in
a confidence score
the specific evidence behind the flag, for example that the message matches a known scam pattern
one-click buttons for Warn, Timeout, Kick and Ban
Your moderators see why the flag happened and act on it without leaving Discord. No second dashboard, no copying user IDs around, no debate in staff chat about whether it's really a scam while the message sits in general.
The confidence score and the evidence line are there on purpose. Auto-moderation that won't say why it acted trains staff to either ignore it or trust it blindly, and both of those go badly eventually.
What this doesn't do
Being straight about the limits. Perceptual hashing recognises images it has a fingerprint for. A genuinely new scam graphic that nobody has confirmed yet has no fingerprint to match against. Someone has to see it first. That's the tradeoff in any recognition-based system, and anyone telling you their tool has no such tradeoff is selling something.
What it changes is the economics. Reposting a known scam image stops working, and producing a fresh convincing fake for every campaign costs far more effort than cropping a border.
Turning it on
Anti-scam protection sits inside Airwavy's moderation stack, configurable from the dashboard alongside auto-mod, raid protection and logging. You choose what your staff alerts look like and where they go.
If you're evaluating a Discord anti-scam bot, there's one question worth asking about every option on your list. Ask what happens when the scammer re-uploads the image with a crop. If the answer is that the file hash changes and the block quietly stops working, you already know how that ends for your members.
If your goal is to stop crypto scam bots in Discord before someone clicks the link, exact matching was never going to get you there.
Add Airwavy to your server or open your anti-scam settings in the dashboard.
