Christopher Duym

Back to projects

HenHacks 2026 · 24-hour hackathon · 2-person team

The Solana Sheriff - Crypto-Scam Detection

A web app that analyzes Solana wallets and tokens to help users identify potential scams.

My role: Integrated the Helius and Gemini APIs and built the frontend-to-backend data flow that turns user input into risk analysis.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Helius API
  • Google Gemini API

Developed The Solana Sheriff, a Next.js web app that helps crypto users avoid scams by analyzing wallets and token mint addresses using public blockchain data from the Helius API.

Built analysis for key risk indicators, including wallet age, transaction patterns associated with botting, liquidity pool data, and top-holder concentration.

Integrated the Google Gemini API to generate heuristic-based risk scores and natural-language explanations of potential red flags.

Delivered the MVP with a two-person team during a 24-hour sprint at HenHacks 2026, hosted by the University of Delaware.

How it works

This is the wallet analyzer, the feature I built. My teammate built the token scanner, the chat assistant, and the voice features.

  1. Analyzer page

    Built by me

    The user pastes any Solana wallet address. No wallet connection is needed, because everything comes from public on-chain data.

  2. Analysis API route

    Built by me

    A Next.js route handler runs the analysis on the server, keeping API keys off the client, and falls back to demo data when keys are missing so the app still works without them.

  3. Helius on-chain data

    Built by me

    Pages through up to 2,000 of the wallet's transactions, works out its true age, and condenses the history into a bounded evidence object of at most 200 transactions for the model.

  4. Heuristic risk scorer

    Scores wallet age, transaction volume, unique counterparties, bursts of activity, and token variety into a low, medium, or high risk level.

  5. Gemini risk assessment

    Built by me

    Gemini reads the evidence and returns a fixed JSON verdict whose reasons must cite specific numbers, with confidence lowered when the history is partial. If the call fails, the heuristic result still comes back.

Data flows top to bottom. Highlighted steps are the parts I built.