Open-weight AI · OPEN//BUILD 2026

Before you send money, ṣọ́ra.

Paste a suspicious SMS, WhatsApp message or screenshot. Ṣọ́ra points at the exact words that give the scam away, then tells your parents what to do in English, Pidgin, Yorùbá, Hausa or Igbo, with a voice note they can play. No smartphone? It works by SMS and USSD too.

5
languages
2G
button phones via USSD & SMS
0
messages stored

Ṣọ́ra (Yorùbá): “be careful.”

…
Try one
How it works

Evidence, not vibes. Every red flag points at real words.

The pipeline

  1. 01

    Read

    Gemma 4 transcribes screenshots, sender ID and links included.

  2. 02

    Rules

    Fixed checks for PIN/OTP/BVN requests, fees, fake links, lookalike senders.

  3. 03

    Reason

    Gemma 4 weighs context and quotes the exact words that worry it.

  4. 04

    Ground

    Any quote that isn't really in the message is thrown away.

  5. 05

    Explain

    A calm verdict, 1–3 steps, five languages, a voice note.

Dear customer, send your BVN and OTP to bit.ly/unblock-acct immediately.

Rules set the floor

A PIN, OTP or fee request can never be marked “no red flags”, whatever the model says. The model can raise a verdict, but it can't wave a scam through.

No invented evidence

Gemma must copy each suspicious phrase word for word. If the quote isn't in the message, it's dropped and counted. We report that rate.

Five languages. Real voices.

English, Pidgin, Yorùbá, Hausa and Igbo, with full tone marks. Voice notes come from YarnGPT2, an open Nigerian-accent TTS model.

Nothing is stored

Messages are processed in memory and forgotten. No accounts, no logs of what you paste.

Never says “safe”

The calmest verdict is “no red flags found, still confirm with your bank”. Ṣọ́ra is a second opinion, not a guarantee.

Practice

The best check happens before the scam arrives.

A one-minute game in five languages. Each answer shows the exact words that give a scam away, using the same rules as the checker. Play it with your parents, then send them the challenge.

Scam or real?

8 messages, about a minute. Learn the signs before the next one lands on your phone.

For button phones

No smartphone? Dial it.

The people scammers target most often use phones with buttons, not apps. Ṣọ́ra meets them there, on the same engine, in their own language.

USSD menu

Dial the code, pick a language, type the key words. The verdict comes back in one screen.

Forward the SMS

Forward the strange text to Ṣọ́ra. Start with YO, HA, IG or PCM to get the reply in that language.

Fits a 2G screen

Replies drop tone marks for GSM-7 and stay within two SMS, so they show on any handset and cost the same.

Falls back safely

USSD sessions time out after about 20 s. If the model is slow, the rules answer instead of leaving a blank screen.

▂▄▆ MTN NGUSSD▮▮▮▯

Sora demo line Dial *384*7672# then press the green key.

*384*7672#

Live simulator using the same endpoints a telco would call. *384*7672# is a demo code; a real shortcode needs provisioning through Africa's Talking.

Evaluation

Measured, not promised.

150 messages: 89 scams and 61 real alerts, OTPs and family texts. Missing a scam is the worst failure, but crying wolf on a real bank alert teaches people to ignore warnings, so we track both.

# reproduce in one command
npm run eval -- --backend gemini

Gemma 4 · gemma-4-26b-a4b-it + rules

98.9%

of scams caught

1.6%

false alarms on real messages

98.7%

overall accuracy

100% of the model’s quoted evidence was found word for word in the message.

EngineScam recallFalse alarmsAccuracyp50
Rules only (no model)98.9%1.6%98.7%0 ms
Gemma 4 · gemma-4-26b-a4b-it + rules98.9%1.6%98.7%6.6 s

The dataset is small and synthetic: written from public scam warnings, with no real personal data. Rules were revised twice after error analysis on this set, so rules-only numbers are optimistic. Full method and limitations are in the repository.

Open by design

Open weights, open licence, open data.

Apache 2.0

Gemma 4

Reads screenshots, judges context, quotes evidence, writes five languages

26B A4B hosted via the Gemini API for the live demo; E4B runs on a laptop with Ollama.

Apache 2.0

YarnGPT2

Nigerian-accent voice notes in Yorùbá, Hausa, Igbo and English

Self-hosted voice service (services/voice) built on Hugging Face transformers.

# run it yourself
git clone https://github.com/daodudestiny56-netizen/Sora.git
cd Sora && npm install
cp .env.example .env # add a free Gemini key, or use Ollama
npm run dev

Code is Apache 2.0. The eval set is CC BY 4.0. We chose Gemma 4 over N-ATLaS because N-ATLaS’s licence caps use at 1,000 monthly users and it can’t read images. The reasoning is written up in the README.

Read the code