Sankur Kundu

Babelguard · open early warning for scams

Scams speak every language. Protection doesn't.

Scam operations reuse one playbook in many languages, but defences are built and tested in English. Babelguard recognises the same scam as it reappears translated, in another script, in another country, and links it to the operation behind it.

86% vs 10%English vs Korean scams caught by an English keyword filter
1.5% → 85%Translated scams recognised: text matching vs Babelguard's meaning link
4,057/sMessages linked per second on one 4-core machine, crash-safe
Intercepted · illustrative2 campaigns · 3 languages
English · India09:12
Your SBI KYC expires today. Update at sbi-kyc-update[.]com or call 98765 43210
हिन्दी · India09:40
आपका SBI KYC आज समाप्त। अपडेट करें: sbi-kyc-update.com या कॉल करें ९८७६५ ४३२१०
ଓଡ଼ିଆ · India11:03
ଆପଣଙ୍କ ପାର୍ସଲ ଅଟକି ଯାଇଛି। ଶୁଳ୍କ ପଠାନ୍ତୁ: refund.help@ybl
English · India11:20
Your parcel is held at customs. Pay the fee to refund.help@ybl

Made-up messages showing what the engine does; no real report is reproduced on this page.

01 · The protection gap

Built in English, failing elsewhere

Share of reported scams caught by an English keyword filter, the simplest baseline, in each language with at least 30 reports in the largest open set of reported scam SMS (IMC 2025, 33,869 messages, 49 languages).

scams caught95% confidence interval
Read it as a table

A keyword list is a floor, not a product: real filters do better. The point is the shape: the same method loses most of its power outside English, and loses the most in the languages with the least data. Results for real multilingual detectors and AI models are being measured next.

South Asia is a quarter of humanity and 0.8% of the open scam data. Africa: 0.1%.

Hindi has 175 reported messages; Tamil, Telugu, Odia and Marathi have none. Hausa, Yoruba and Amharic have none. A detector trained or tested on open data has not seen them.

02 · How it works

Clean. Extract. Link.

Every message passes three stages on arrival. A campaign that starts in Hindi is recognised when it reappears in Odia or English, from its first few reports.

STAGE 1

Strip the disguise

Removes the invisible characters and look-alike letters scammers use to slip past filters, while keeping the joiners that Hindi, Bengali, Odia, Urdu and Thai need. Native digits (०–९, ୦–୯, ٠–٩) become 0–9. Every removal is counted: a disguise is evidence.

STAGE 2

Find what the scam needs

Links, phone numbers in any digits, UPI IDs, emails and crypto wallets, checked by checksum. Victims' OTPs, card, Aadhaar and PAN numbers are masked before anything is shared.

STAGE 3

Link across languages

Messages join one campaign when they share an indicator, are near copies, or say the same thing in another language.

1.5% → 85%

of translated scams recognised: plain text matching against Babelguard's multilingual meaning link (11,333 messages, 45+ languages).

03 · At scale

A national feed on one machine

The streaming engine, measured on synthetic campaigns built from real reported templates, each with its own links, numbers and payment IDs, and real translations.

4,057/sMessages linked per second with 3 feature workers, identical results to one processmeasured with 2,000 campaigns; more campaigns cost more per message
0.21 KBEngine memory per message at 1,000,000 messages (203 MB)longest pause 96 ms
99.5%B-cubed F1 against the known campaigns, at 100,000 and at 1,000,000 messagessynthetic load from real templates
50 / 0Random crashes / messages lost: every restart rebuilt identical campaignswrite-ahead log + atomic snapshots
04 · What Babelguard adds

Built for the rest of the world

Built for the languages that today's defences serve least, and published with every number reproducible.

  1. A map of the gap

    Where open scam data comes from, language by language, and how much protection an English-built method loses in each, with confidence intervals and the small samples marked rather than ranked.

  2. Script-aware defence

    A cleaner that removes disguises without breaking the scripts that need joiners, and an indicator extractor that reads phone numbers in native digits, UPI IDs and wallets, with victims' details masked.

  3. Linking by meaning

    Cross-language recognition from 1.5% to 85%, so one fact-check or takedown can cover every language version of a campaign.

  4. An engine that holds up

    Streaming, crash-safe linking at 4,057 messages a second on four cores, with 50 crashes and nothing lost: built to run on a CERT's own machines, so no report leaves them.

Defensive onlyMeasurements and fixes are published; evasion kits never are.
Privacy firstNo raw message is redistributed. Victims' details are masked; shared records hold only the scammer's.
Responsible disclosureEach vendor hears about its detector's weaknesses before any per-vendor number is published.
05 · Press & partners

The story in five facts

Free to quote with credit to “Sankur Kundu, Babelguard”. Every figure links back to code and data.

  • In the largest open set of reported scam SMS, 65% are English; South Asian languages are 0.8% and African languages 0.1%.
  • An English keyword filter catches 86% of English scams but only 10–36% in Korean, Japanese, Urdu, Arabic, Thai and Hindi.
  • Hindi has 175 reported messages in the open data; Tamil, Telugu, Odia and Marathi have none.
  • Text matching recognises a translated scam 1.5% of the time; Babelguard's meaning link, 85%.
  • The engine links 4,057 messages a second on one four-core machine and lost nothing in 50 crashes.

Pilot it, or talk to me

Babelguard runs on your own systems; no report leaves them. I will set it up with your team and write up what it finds, at no cost.

sankur.kundu.tw@gmail.com

LinkedIn · GitHub

@software{kundu2026babelguard,
  author  = {Kundu, Sankur},
  title   = {Babelguard: an open early-warning system for scams across languages},
  year    = {2026},
  url     = {https://github.com/Shakhtar-Sankur/babelguard},
  license = {Apache-2.0}
}
Sankur Kundu

Sankur Kundu

ML systems engineer & independent researcher · Bhubaneswar, India

Builds ML infrastructure from scratch that matches the world's best, and makes it work for the people today's models leave out. Also the author of lipi, a tokenizer that needs fewer tokens than GPT-4o's and Gemini's in 23 of 24 Indian languages, and ratchet, reinforcement-learning post-training from scratch. Fixes merged into Apple's MLX, Meta's ExecuTorch, Hugging Face's OpenEnv and Oxford's PyZX, and pull requests in review at Google's JAX, NVIDIA, MIT, Carnegie Mellon and ETH Zurich.