Skip to main content

Shadow Watch

PyPI version Python 3.9+ License: MIT Downloads

"Like a shadow — always there, never seen."

Behavioral intelligence for your application. Add passive behavioral biometrics, personalization, and fraud detection with zero user friction.

What It Does

Shadow Watch silently learns user behavior patterns and uses them for:

  • 🔐 Security: Behavioral biometric authentication (detects account takeovers)
  • 🎯 Personalization: Auto-generates interest profiles based on activity
  • 🤖 Intent Prediction: Understands what users care about without asking
  • 🚨 Fraud Detection: Flags suspicious behavior before damage happens

Installation

# Basic installation
pip install shadowwatch

# With Redis support (recommended for production)
pip install shadowwatch[redis]

# With FastAPI integration
pip install shadowwatch[fastapi]

Get your free trial license: Email tanishqdasari2004@gmail.com or visit the license server

Quick Start

from shadowwatch import ShadowWatch

# Initialize with your database
sw = ShadowWatch(
    database_url="postgresql+asyncpg://user:pass@localhost/db",
    license_key="SW-TRIAL-XXXX-XXXX-XXXX"  # Get trial at shadowwatch.dev
)

# Track user activity (silent, no UI)
await sw.track(
    user_id=123,
    entity_id="AAPL",
    action="view"
)

# Get user profile
profile = await sw.get_profile(user_id=123)
# Returns: {"total_items": 42, "fingerprint": "a7f9e2c4...", "library": [...]}

# Verify login (trust score)
trust = await sw.verify_login(
    user_id=123,
    request_context={
        "ip": "192.168.1.1",
        "user_agent": "...",
        "library_fingerprint": "..."  # From client cache
    }
)
# Returns: {"trust_score": 0.85, "risk_level": "low", "action": "allow"}

How It Works

  1. Silent Tracking: Every user action (views, searches, trades) is logged
  2. Interest Scoring: Actions aggregate into weighted interest scores
  3. Fingerprinting: Top interests generate a unique behavioral fingerprint
  4. Trust Calculation: Fingerprint mismatch = suspicious login attempt

Use Cases

Fintech Apps

  • Detect account takeover attempts
  • Behavioral 2FA (no user friction)
  • Portfolio-aware personalization

E-commerce

  • Predict purchase intent
  • Fraud detection
  • Product recommendations

Trading Platforms

  • Smart watchlists
  • Pattern-based alerts
  • Risk profiling

Features

✅ Zero User Friction - Works silently, no prompts
✅ Passive Authentication - Behavioral biometric layer
✅ Auto-Generated Profiles - based on actual behavior
✅ Investment Priority - Trades weighted 10x higher than views
✅ Self-Hosted - Runs on YOUR infrastructure
✅ Privacy-First - Your data never leaves your servers

Database Setup

Shadow Watch uses 3 tables:

# Create tables (SQLAlchemy)
from shadowwatch.models import Base
async with engine.begin() as conn:
    await conn.run_sync(Base.metadata.create_all)

Tables created:

  • shadow_watch_activity_events (raw events)
  • shadow_watch_interests (aggregated scores)
  • shadow_watch_library_versions (snapshots)

Pricing

Tier Price Events/Month Support
Trial Free (30 days) 10,000 Email
Startup $500/month 100,000 Priority
Growth $1,500/month 1,000,000 Slack
Enterprise Custom Unlimited Dedicated

For trial license: tanishqdasari2004@gmail.com

Documentation

Comparison

Feature Traditional 2FA Shadow Watch
User Friction High (SMS, app) Zero (passive)
Hackable Yes (SIM swap) No (behavioral)
Setup Time Weeks 5 lines of code
Personalization None Auto-generated

License

MIT License - see LICENSE

Author

Built by Tanishq during development of QuantForge Terminal

Questions?


"Always there. Never seen. Forever watching." 🌑

Metadata

Release files for shadowwatch 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shadowwatch 0.3.0
File Size Uploaded
shadowwatch-0.3.0.tar.gz 21.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shadowwatch 0.3.0
File Interpreter ABI Platform
shadowwatch-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.2 kB

Release files / shadowwatch-0.3.0.tar.gz

Download URL shadowwatch-0.3.0.tar.gz
Size 21.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f7765fcf49e472e65d2967739a45a0a1a9355afabdc3de8d764149dad3e07096
BLAKE2b-256 checksum
How to use checksums
afd21131736158e3e9b07c09203477d72c72317c0450951070adb5d12524aaaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / shadowwatch-0.3.0-py3-none-any.whl

Download URL shadowwatch-0.3.0-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92533da24fd283307e4b02df1d4930c4dc8fe26a6f1299e8af399fecbbca3980
BLAKE2b-256 checksum
How to use checksums
9b1e67c499dbcbb368bdd8f7b4343723831f3bb0f0d16336fbb2220c85808210
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page