⬑ CryptoGuard β Blockchain Risk Intelligence Platform
Real-Time Crypto Scam Detection & Wallet Risk Analysis
A client-side, hackathon-ready web application that simulates a professional blockchain security intelligence terminal.
π Table of Contents
- Overview
- Live Demo
- Features
- Tech Stack
- Project Structure
- Getting Started
- How It Works
- UI/UX Design System
- Sample Inputs to Demo
- Architecture Overview
- Customization Guide
- Limitations & Disclaimer
- Hackathon Judging Notes
- License
Overview
CryptoGuard is a fully client-side blockchain security simulator that helps users evaluate whether a crypto wallet address or token/project name is potentially safe, suspicious, or a scam.
It is designed as a hackathon demonstration tool β built to look, feel, and behave like a real-world blockchain threat intelligence platform, while running entirely in the browser with zero backend infrastructure required.
The application features:
- A transparent, rule-based risk scoring engine
- A simulated AI analysis layer with randomized uncertainty
- Wallet address pattern detection with synthetic on-chain metadata generation
- A polished dark-terminal UI with real-time animations
Live Demo
No server needed. Just open the file:
index.html
Double-click it in your file explorer, or serve it with any static file server:
# Python
python -m http.server 8080
# Node.js (npx)
npx serve .
# VS Code
# Use the "Live Server" extension
Then visit: http://localhost:8080
Features
Core Functionality
| Feature | Description |
|---|---|
| π Smart Input Detection | Auto-detects wallet addresses vs. token/project names using regex pattern matching |
| π Risk Scoring Engine | Transparent, rule-based scoring system with 10+ weighted signal rules |
| π€ AI Uncertainty Simulation | Applies probabilistic jitter (Β±0β10) to simulate model confidence variance |
| π§Ύ Rule Breakdown Panel | Lists every triggered rule with icon, description, and score delta |
| π§ AI Threat Analysis | Generates a unique, typed-out threat intelligence summary per scan |
| π Wallet Simulation | Synthesizes fake transaction count and wallet age for address inputs |
Wow Factor / Animated Features
| Feature | Description |
|---|---|
| π Particle Network Background | Animated node mesh rendered on <canvas> with connection lines |
| π‘ Loading Sequence | "Scanning blockchain nodesβ¦" fake progress ring with live node counter |
| π Animated Score Arc | SVG ring animates from 0 β final score with color coding |
| β¨οΈ Typing Effect | AI analysis text types out character-by-character |
| π Staggered Card Reveal | Rule cards slide in sequentially with delay |
| π Live UTC Clock | Real-time timestamp in the terminal header bar |
| βΊ Smooth Reset | Fade-out + arc reset + input clear with jQuery animation |
Tech Stack
| Technology | Usage |
|---|---|
| HTML5 | Semantic structure, canvas element, SVG inline graphics |
| CSS3 | Custom properties, glassmorphism, keyframe animations, grid/flexbox layout |
| JavaScript (ES6+) | Scoring engine, simulation logic, DOM orchestration |
| jQuery 3.7.1 | Animations (fadeIn, slideDown, delay), event handling, DOM manipulation |
| Google Fonts | Orbitron (headings), Share Tech Mono (terminal), Rajdhani (body) |
No frameworks. No backend. No build tools required.
Project Structure
crypto-risk-detector/
β
βββ index.html # Application shell, layout, all HTML structure
βββ style.css # Full design system β dark theme, animations, responsive
βββ script.js # Scoring engine, simulation logic, jQuery UI controller
βββ README.md # This file
File Responsibilities
index.html
- Sets up the full page layout including terminal header, hero section, input card, loading section, and all result panels
- Loads jQuery via CDN, Google Fonts, and local CSS/JS
- Contains inline SVG for the hex logo and score arc
style.css
- Defines all CSS custom properties (design tokens) under
:root - Implements glassmorphism cards, scanline overlay, neon glow effects
- Controls all animation keyframes: blink, pulse, spin, slideIn, glitch
- Fully responsive β adapts from mobile (320px) to wide desktop
script.js
initParticles()β canvas-based animated backgroundanalyzeInput()β the full risk scoring enginerunLoadingSequence()β fake async loading simulationrenderResult()β jQuery-powered result rendering with animation orchestrationtypeText()β character-by-character typing effectanimateScore()β smooth SVG arc + counter animationgenerateAIText()β dynamic threat summary generator
Getting Started
Prerequisites
- Any modern web browser (Chrome, Firefox, Safari, Edge)
- Internet connection (for jQuery CDN + Google Fonts)
- Offline alternative: Download jQuery locally and replace the CDN link in
index.html
- Offline alternative: Download jQuery locally and replace the CDN link in
Installation
# 1. Clone or download the project
git clone https://github.com/yourname/cryptoguard.git
cd cryptoguard
# 2. Open directly
open index.html # macOS
start index.html # Windows
xdg-open index.html # Linux
That's it. No npm install. No build step. No .env files.
Offline Mode (Optional)
Replace the jQuery CDN link in index.html:
<!-- Replace this -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<!-- With this (after downloading jquery.min.js) -->
<script src="jquery.min.js"></script>
How It Works
Scoring Engine
The engine lives in analyzeInput(raw) in script.js. Every scan follows this pipeline:
Raw Input
β
βββΊ Normalize (trim, lowercase)
βββΊ Detect Type (wallet address vs. token name)
βββΊ Apply Positive Rules β score +=
βββΊ Apply Negative Rules β score -=
βββΊ Wallet Simulation β score Β±= (if address)
βββΊ AI Jitter Layer β score Β±= rand(-10, +10)
βββΊ Clamp to [0, 100]
Base score: 50 (neutral starting point)
Final clamping: Math.max(0, Math.min(100, score))
Rule Breakdown
Positive Signals (score increases)
| Rule | Trigger | Delta |
|---|---|---|
| Known Safe Project | Input matches one of 30+ verified project names (bitcoin, ethereum, solana, etc.) | +30 |
| Wallet Address Pattern | Input matches regex for Ethereum (0xβ¦), Bitcoin (1/3β¦), or Solana (base58) address format | +10 |
| Stable Input Pattern | Single-word non-wallet input with length β₯ 10, no spaces | +10 |
| High Transaction Volume | Wallet simulation produces > 500 synthetic transactions | +10 |
| Established Wallet Age | Wallet simulation produces age > 365 days | +10 |
Maximum possible positive delta: +70 (before jitter)
Negative Signals (score decreases)
| Rule | Trigger | Delta |
|---|---|---|
| Scam Keyword Detected | Input contains any word from the 18-term scam blacklist | β40 |
| High-Risk Signal Word | Each word from the 14-term negative signal list (up to 3 matches) | β25 each |
| Suspiciously Short Input | Input length < 4 characters | β10 |
| Low Transaction History | Wallet simulation produces < 10 synthetic transactions | β10 |
| Newly Created Wallet | Wallet simulation produces age < 30 days | β10 |
Maximum possible negative delta: β115 (before clamping)
Scam Keyword Blacklist
scam, rug, rugpull, ponzi, fraud, fake, moon100x, elon,
safemoon, doubler, guaranteed, instant profit, get rich,
airdrop claim, nft scam, honeypot, pump dump, presale guaranteed
Negative Signal Word List
free, airdrop, guaranteed, bonus, instant, profit, 100x, moon,
rich, pump, claim, presale, whitelist, nft drop
Verified Safe Projects List (30+)
bitcoin, btc, ethereum, eth, solana, sol, cardano, ada,
polkadot, dot, chainlink, link, litecoin, ltc, uniswap, uni,
aave, compound, maker, mkr, binance, bnb, polygon, matic,
avalanche, avax, cosmos, atom, algorand, algo, filecoin, fil
Wallet Simulation Layer
When the input matches a valid wallet address pattern, the engine generates synthetic on-chain metadata to enrich the analysis:
Address Regex Patterns:
/^(0x[a-fA-F0-9]{32,64}|[13][a-km-zA-HJ-NP-Z1-9]{25,34}|[A-Za-z0-9]{44})$/
Covers: Ethereum-style hex addresses, Bitcoin P2PKH/P2SH addresses, Solana base58 addresses.
Synthetic Data Generation:
| Metric | Safe Score (β₯70) | Medium Score (40β69) | High Risk (<40) |
|---|---|---|---|
| Transaction Count | 300 β 12,000 | 10 β 300 | 0 β 15 |
| Wallet Age | 400 β 2,200 days | 30 β 400 days | 0 β 30 days |
These synthetic values are then fed back into the scoring engine β old wallets and high transaction counts add score; new wallets and low activity subtract it.
AI Uncertainty Layer
After all deterministic rules are applied, a random jitter is added:
const jitter = Math.round(rand(-10, 10));
score += jitter;
This is always logged as a named rule in the breakdown panel:
π€ AI Uncertainty Factor β Neural pattern variance applied (+4) β simulating probabilistic model confidence
This design choice makes the tool feel more realistic β real ML models express confidence intervals, not binary outputs.
UI/UX Design System
Color Palette
| Token | Value | Usage |
|---|---|---|
--bg |
#020c06 |
Page background |
--green |
#00ff88 |
Primary accent, safe state |
--green-glow |
#00ff8855 |
Glow effects, shadows |
--yellow |
#f0c040 |
Medium risk state |
--red |
#ff3355 |
High risk / danger state |
--blue |
#00c8ff |
Accent (reserved) |
--text |
#b0ffcc |
Body text |
--text-dim |
#4a8c6a |
Labels, metadata, hints |
--border |
rgba(0,255,136,0.15) |
Card borders |
--glass |
rgba(0,255,136,0.04) |
Glassmorphism fill |
Typography
| Font | Family | Usage |
|---|---|---|
| Orbitron | Display / Geometric | Page title, score number, button labels |
| Share Tech Mono | Monospace | Terminal text, metadata values, input field |
| Rajdhani | Sans-serif | Tagline, body copy |
Component System
- Glass Cards β
backdrop-filter: blur(12px)with neon border and corner bracket pseudo-elements - Scanline Overlay β Fixed
::beforelayer with repeating CSS gradient - Neon Glows β
box-shadowandtext-shadowusing semi-transparent green/red/yellow - Score Arc β SVG
<circle>with animatedstroke-dashoffsettransition - Particle Canvas β Raw
<canvas>with RAF loop, 60 nodes, proximity-based connection lines
Responsive Breakpoints
/* Single breakpoint at 620px */
@media (max-width: 620px) {
.result-grid { grid-template-columns: 1fr; }
.loading-card { flex-direction: column; text-align: center; }
}
Sample Inputs to Demo
Use these during a live hackathon presentation for maximum impact:
| Input | Expected Result | Why |
|---|---|---|
0x4f3edf983ac636a65a842ce7c78d9aa706d3b113 |
π’ Safe / Medium | Wallet address pattern + synthetic tx/age data |
ethereum |
π’ Safe | Matches verified project list (+30) |
bitcoin |
π’ Safe | Matches verified project list (+30) |
free airdrop guaranteed profit |
π΄ High Risk | 4 negative signal words (β100 before clamp) |
rug pull ponzi scam |
π΄ High Risk | Scam keyword (β40) + signal words |
instant bonus moon 100x |
π΄ High Risk | Multiple negative signal words |
uniswap |
π’ Safe | Verified DeFi project |
safemoon |
π΄ High Risk | Scam keyword match |
x |
π΄ High Risk | Suspiciously short input (β10) |
chainlink |
π’ Safe | Verified project (+30) |
Demo Tip: Start with
ethereum(safe), thenfree airdrop guaranteed(scam), then paste the sample wallet address. This shows the full range in under 90 seconds.
Architecture Overview
βββββββββββββββββββββββββββββββββββββββββββββββ
β index.html β
β ββββββββββββ ββββββββββββ βββββββββββββ β
β β Header β β Input β β Results β β
β β Terminal β β Card β β Panels β β
β ββββββββββββ ββββββ¬ββββββ βββββββ²ββββββ β
ββββββββββββββββββββββ β βββββββββββββββββββββββ
β β
ββββββΌββββββββββββββ΄ββββββ
β script.js β
β β
β βββββββββββββββββββ β
β β analyzeInput() β β
β β Scoring Engine β β
β ββββββββββ¬βββββββββ β
β β β
β ββββββββββΌβββββββββ β
β βrunLoadingSeq() β β
β β Fake Async Scan β β
β ββββββββββ¬βββββββββ β
β β β
β ββββββββββΌβββββββββ β
β β renderResult() β β
β β jQuery Animate β β
β βββββββββββββββββββ β
ββββββββββββββββββββββββββ
β
ββββββΌβββββββββββββββββββββ
β style.css β
β Design tokens, layout, β
β animations, responsive β
ββββββββββββββββββββββββββββ
Data flow is entirely synchronous and local. No API calls are made. The "scan delay" is a setInterval timer. All risk data is computed instantly and revealed after the loading animation completes.
Customization Guide
Adding New Safe Projects
In script.js, find SAFE_PROJECTS and add to the array:
const SAFE_PROJECTS = [
'bitcoin', 'btc', 'ethereum', 'eth',
// Add your project here:
'yourtoken', 'yt'
];
Adding New Scam Keywords
Find SCAM_KEYWORDS:
const SCAM_KEYWORDS = [
'scam', 'rug', 'rugpull',
// Add here:
'newscamterm'
];
Changing Scoring Weights
Find the rules inside analyzeInput() and adjust the delta values:
// Example: increase penalty for scam keywords
score -= 40; // Change to score -= 60;
Changing the Color Theme
All colors are CSS custom properties in style.css:
:root {
--green: #00ff88; /* Change to any color */
--red: #ff3355;
--yellow: #f0c040;
}
Adjusting Loading Speed
In runLoadingSequence():
// Message rotation speed (ms)
const msgTimer = setInterval(() => { ... }, 380); // Lower = faster
// Node counter speed
const nodeTimer = setInterval(() => { ... }, 200);
// Progress percentage speed
const pctTimer = setInterval(() => { ... }, 120);
Changing Typing Speed
// In renderResult(), find:
typeText($('#ai-analysis'), aiText, 18);
// β ms per character β lower = faster
Limitations & Disclaimer
β οΈ This is a demonstration tool only.
- No real blockchain data is accessed. All wallet metadata (transaction counts, wallet ages) is synthetically generated using seeded randomness.
- No real AI/ML model is used. The "AI uncertainty factor" is a random number in the range Β±10.
- Scores are not financial advice. Do not make investment or security decisions based on this tool's output.
- The scam/safe keyword lists are illustrative, not exhaustive. Real scam detection systems use thousands of signals including contract bytecode analysis, liquidity pool monitoring, social graph analysis, and more.
- jQuery is used for animations only, not for data fetching or state management.
This tool is intended to demonstrate:
- How rule-based risk scoring systems work conceptually
- How to build a polished, animated UI with vanilla HTML/CSS/JS + jQuery
- How to present a client-side app that feels like a live intelligence platform
Hackathon Judging Notes
This project was built to score highly across typical hackathon rubrics:
| Judging Criterion | How CryptoGuard Addresses It |
|---|---|
| Problem Relevance | Crypto scams cost users billions annually; fraud detection is a real, unsolved mass-market problem |
| Technical Execution | Clean separation of concerns across 3 files; well-structured scoring engine; jQuery animation orchestration |
| UI/UX Quality | Professional dark terminal aesthetic; responsive design; animated feedback at every interaction step |
| Demo-ability | Runs instantly from index.html; results in ~3 seconds; clear visual narrative from input β scan β result |
| Originality | Unique "security intelligence terminal" framing; transparent rule system; AI simulation layer |
| Completeness | Fully functional end-to-end with reset, hints, multiple input types, and edge case handling |
2-Minute Demo Script
- Open
index.htmlβ point out the live node counter and UTC clock - Type
ethereumβ hit Analyze β show the loading scan animation β reveal Safe score - Reset β type
free airdrop guaranteed profitβ show High Risk result and rule breakdown - Reset β paste
0x4f3edf983ac636a65a842ce7c78d9aa706d3b113β show wallet simulation with tx count and age - Point out the AI analysis typing effect and the animated threat meter bar
License
MIT License β free to use, modify, and distribute for personal, educational, and commercial purposes.
MIT License
Copyright (c) 2026 CryptoGuard
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
**Built for hackathons. Designed to impress. Zero dependencies beyond jQuery.** ⬑ CryptoGuard Sentinel v2.4.1 · Blockchain Risk Intelligence Platform
Log in or sign up for Devpost to join the conversation.