Inspiration

Non-consensual and weaponized synthetic media disproportionately harms people in the public eye—activists, journalists, and others—while takedown and documentation are slow, opaque, and emotionally draining. Aegis was inspired by the idea that survivors deserve a dignity-first workflow: clear rights language, ready-to-send escalation copy, and proof of record without hoarding or re-hosting the abusive content itself.

What it does

Aegis (Deepfake Defense) is a protection dashboard that walks through a “one-click takedown” style flow for a detected incident: it tracks the case in local incident history, calls a server API to produce a structured advocacy report (victim-rights summary, platform escalation notice, citations, and hashes), and then registers a cryptographic fingerprint on Solana (via the Memo program) in live mode with a connected wallet, or simulated demo mode when VITE_DEMO_MODE is on. The UI emphasizes hash-only evidence (e.g. perceptual hash metadata) so the system can support accountability without storing the harmful media.

How we built it

The app is a TanStack Start + React full-stack project with SSR, a Gemini backend route that validates input with Zod and returns reports matching a strict schema (with a local fallback if the API fails), and a Solana integration using @solana/web3.js plus Phantom through wallet-adapter. The main experience is the ProtectionDashboard: wallet connect, incident lifecycle, report display, and ledger transaction feedback. We also wired deployment-friendly builds (e.g. Nitro on Vercel vs Cloudflare-oriented local output) so previews match the stack’s server + static output.

Challenges we ran into

  • Full-stack + AI + chain in one UX: keeping the flow responsive while Gemini, hashing, and Solana confirmation each have failure modes (network, schema drift, wallet rejections, RPC errors).
  • Dependency weight from wallet ecosystems (old React peer trees) while staying on React 19—we trimmed adapters to what the product actually uses.
  • Deploy target mismatch: default Cloudflare Workers-style artifacts do not map cleanly to Vercel without Nitro and a .vercel/output-style build path.
  • Demo vs production: balancing simulated ledger behavior for judges and real signed memos when a wallet is required.

Accomplishments that we're proud of

  • A survivor-centered narrative in the product: rights copy, escalation language, and citations bundled into one actionable report, not just a technical “score.”
  • A privacy-respecting evidence model: fingerprints and hashes instead of persisting media.
  • On-chain accountability as a simple, auditable append: memo payloads with versioned JSON and a content hash, with clear explorer links.
  • Resilient reporting: Zod-validated outputs and a fallback generator so the demo does not die when the model or network hiccups.

What we learned

Integrating modern full-stack React (TanStack Start), LLM APIs, and blockchain surfaces a lot of invisible work: schemas and fallbacks matter as much as the model, and deployment is part of the feature—preset and build output must match the host (Vercel vs Workers). We also saw how wallet dependency trees punish “install everything” bundles; narrowing dependencies keeps installs and CI logs sane.

What's next for Aegis (Deepfake Defense)

  • Real detection pipeline integration ( ingest from your detector / partner API ) instead of demo placeholder detection data.
  • Org and platform connectors: export packs to Trust & Safety portals, email templates, and jurisdiction-specific checklists.
  • Stronger evidence standards: multi-hash bundles, optional encrypted vault for survivor-held keys, and clearer chain-of-custody documentation for counsel.
  • Program or account-based ledger upgrade path if memos need richer indexing, retention policy, or revocation semantics.
  • Multi-wallet and multi-cluster polish, rate limits, abuse protection on the advocacy API, and accessibility / i18n for a global user base.

Built With

Share this project:

Updates