⬑ 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

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 background
  • analyzeInput() β€” the full risk scoring engine
  • runLoadingSequence() β€” fake async loading simulation
  • renderResult() β€” jQuery-powered result rendering with animation orchestration
  • typeText() β€” character-by-character typing effect
  • animateScore() β€” smooth SVG arc + counter animation
  • generateAIText() β€” 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

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 ::before layer with repeating CSS gradient
  • Neon Glows β€” box-shadow and text-shadow using semi-transparent green/red/yellow
  • Score Arc β€” SVG <circle> with animated stroke-dashoffset transition
  • 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), then free 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:

  1. How rule-based risk scoring systems work conceptually
  2. How to build a polished, animated UI with vanilla HTML/CSS/JS + jQuery
  3. 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

  1. Open index.html β€” point out the live node counter and UTC clock
  2. Type ethereum β†’ hit Analyze β†’ show the loading scan animation β†’ reveal Safe score
  3. Reset β†’ type free airdrop guaranteed profit β†’ show High Risk result and rule breakdown
  4. Reset β†’ paste 0x4f3edf983ac636a65a842ce7c78d9aa706d3b113 β†’ show wallet simulation with tx count and age
  5. 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

Built With

Share this project:

Updates