Inspiration
A single convincing message can lead someone to reveal an OTP, share financial information, or click a dangerous link. Scams often succeed not because people are careless, but because attackers create urgency, impersonate trusted organizations, and make fraudulent requests appear legitimate.
We asked a simple question: What if people had a moment to pause, recognize the warning signs, and make a safer decision before acting?
That question inspired PayPause: ActionGuard — a scam-safety prototype designed to make suspicious digital interactions easier to understand and safer decisions easier to make.
What it does
PayPause: ActionGuard explores how a simple security assistant can help users recognize suspicious messages and understand common scam tactics.
Its prototype combines three ideas:
- Check: Explore simulated messages and digital scam scenarios.
- Understand: Examine risk indicators such as urgency, requests for sensitive information, suspicious links, and requests to install unfamiliar applications or grant device permissions.
- Act safely: Learn practical precautions, including never sharing OTPs or PINs, avoiding untrusted links and downloads, and verifying requests through official channels.
Rather than relying only on a risk label, our approach emphasizes explaining why a message may be suspicious and what the user can do next.
How we built it
We developed a web-based demonstration, an Android prototype, and a separate experimental machine-learning pipeline.
The web demonstration provides a simulated mobile experience with fictional scam scenarios and explainable risk indicators. It also connects to a hosted prediction API when a user explicitly requests an explanation of a sample message. The API uses a TF-IDF and Logistic Regression baseline trained on the public UCI SMS Spam Collection dataset, alongside separate rule-based indicators.
We also developed an Android prototype focused on local, rule-based analysis of suspicious text and links. The Android prototype and the hosted machine-learning API are separate components; the trained model is not yet integrated into the Android application.
Our machine-learning experiment includes evaluation and ONNX export as groundwork for possible future integration. The currently hosted prediction API uses the serialized model artifact, rather than ONNX inference.
We chose this staged approach to explore the user experience, establish a working technical foundation, and identify what requires further validation before real-world use.
Challenges we ran into
One major challenge was balancing threat detection with false alarms. Overly aggressive warnings can undermine trust, while weak detection can leave users exposed.
Another challenge was the difference between general SMS spam classification and targeted financial-scam detection. The public dataset provides a useful starting point, but it does not establish how well the model detects Indian banking, UPI, or payment-related scams. Its spam score should not be interpreted as a calibrated probability of fraud.
We also had to consider privacy and transparency. Users need to understand what is analyzed, whether an external service is involved, and what a warning actually means. Likewise, the absence of a known threat indicator does not prove that a message or link is safe.
Accomplishments that we're proud of
We moved beyond the concept stage and established a working prototype with a testable technical foundation.
- Built a web demonstration featuring a simulated mobile interface and fictional scam scenarios.
- Implemented explainable, rule-based risk indicators for suspicious messages and requests.
- Deployed a hosted machine-learning prediction API.
- Successfully ran a hosted smoke test that verified API health, model loading, and a sample prediction request.
- Developed a separate TF-IDF and Logistic Regression baseline using a public SMS spam dataset.
- Evaluated the baseline and exported an ONNX model as groundwork for future integration.
- Identified key limitations involving dataset relevance, false positives, privacy, and real-world validation.
Our most important accomplishment is the direction we established: helping people understand potential threats and choose safer next steps, rather than presenting an unexplained risk score.
What we learned
We learned that building a useful security assistant requires more than a working interface or a promising model. It requires representative data, careful evaluation, understandable explanations, privacy-conscious design, and practical guidance.
We also learned the importance of distinguishing a prototype's demonstrated capabilities from its future potential. A successful API test confirms that a service can respond; it does not prove real-world scam-detection accuracy. Similarly, results on general SMS spam cannot automatically be generalized to financial fraud.
These lessons are guiding our next development and validation steps.
What's next for PayPause: ActionGuard
Our priorities are to:
- Test the Android prototype on physical devices and improve usability.
- Expand evaluation with representative Indian financial-scam, phishing, and legitimate-message examples.
- Measure precision, recall, false-positive rates, and missed-threat patterns on relevant test data.
- Investigate integrating the machine-learning model into the Android application after validating its suitability.
- Improve explanations and guidance for independently verifying suspicious requests.
- Strengthen privacy controls and clearly communicate when optional external processing occurs.
- Explore lightweight offline operation and accessibility improvements for users with different levels of digital literacy.
Our long-term vision is to make scam awareness a practical part of everyday digital life — helping people pause, understand potential risks, and make safer decisions before a suspicious interaction causes harm.
Built With
- android
- css
- cybersecurity
- fastapi
- html
- javascript
- logistic-regression
- machine-learning
- natural-language-processing
- onnx
- python
- render
- rest-api
- scikit-learn
- tf-idf
Log in or sign up for Devpost to join the conversation.