2026-10-19 · 2 min read · Security · Flutter · Django
ScamSaathi: an offline scam shield in Hindi and English
A scam check for the people scammers target most: farmers, students and their families. It runs on the phone, explains why, and can tell someone you trust.
Every day people in India lose money to a fake "PM-Kisan.apk", an "RTO challan" file, a "KYC update" link, a UPI collect request or a fake scholarship, usually on WhatsApp or SMS, in a regional language, while they are alone. ScamSaathi checks a message, link or app name on the phone itself, in Hindi or English, explains why, and can tell someone you trust.
Three ideas built together
- Share-to-check: share a message from WhatsApp or SMS and get plain-language reasons, with a Listen button for people who read slowly. A suspicious .apk shows what it asks for (read SMS and OTPs, read the screen) without being installed.
- Offline and private by default: detection runs on the phone from signed rule packs. The message is never uploaded; reporting is opt-in and sends only hashes.
- The Saathi loop: name someone you trust; when something looks dangerous the app drafts them a short note that never contains the message, a link or a number.
How it decides
- Rules are data: phrases, link features and weights live in a pack, with every explanation in English and Hindi. A Dart and a Python engine must pass the same golden corpus, so they cannot drift.
- A small character n-gram model notices wording that is merely similar to scams; it can warn but never alone says "dangerous".
- No single clue is enough: at least two rules must agree. Nothing is ever called "safe"; a quiet result says "no warning signs found".
- Signed updates fail closed: packs are signed with Ed25519, and the app and server reject missing, tampered or older packs.
Honest numbers
Early release (v0.2). On a fresh, made-up test set it flagged 27 of 36 scams (75%) and 1 of 36 normal messages (2.8%). It has not been tested on real WhatsApp traffic, so every result is a strong hint, never proof.
Institutions such as a school, farmer-producer organisation or cooperative bank get a dashboard of what is circulating in their district and can publish verified alerts, without ever seeing messages or people. If you lost money, call 1930 or report at cybercrime.gov.in.
Based on the project README: github.com/nikhilrai-tech/ScamSaathi