Search projects, hackathons, sponsors and tech

    ← All projects

    Chain Hound

    ChainHound: AI wallet verification that traces funds, analyzes risk, and investigates activity data.

    Demo

    About

    Chain hound is an integration agent, other platfform can integrate and check any interacting wallets risk score and decide do they want to interact with that wallet or not. Every stolen crypto wallet leaves a trail, but almost every tool that reads that trail is a locked, human-only dashboard that won't explain how it reached its conclusion. ChainHound is different: give it a wallet address, and it tells you — with receipts — how risky that wallet actually is. Under the hood, it pulls the wallet's real transaction history live: on-chain transfers directly from an RPC node, plus swap and lending activity from The Graph's Subgraph MCP (Uniswap V3 and Aave V3). That evidence gets scored by an AI model, but the model never invents the number — it only explains a risk score and a set of flags that are calculated deterministically from the actual data. If the model can't score a wallet, it says so explicitly, rather than quietly returning nothing. There are two ways to investigate. Wallet Analysis checks a single address on its own history. Fund Trace goes one hop further: it independently re-verifies the wallet's most recent counterparties too, and rolls everything into one trail-level verdict — because a clean wallet fed by a risky one shouldn't get a free pass just because you only checked the first hop. Every wallet ChainHound touches also gets a real, human-readable identity: it's registered on ENSv2 (on Sepolia) with its own subregistry, and named with a pronounceable label instead of a 40-character hex string — so a report reads like names, not noise. Finally, this isn't just a website. The same risk-verification logic is published as paid, machine-callable APIs through Bazantic — an agent, a wallet app, or a protocol's withdrawal guard can pay a few cents, ask "is this wallet safe?" in code, and get back a verdict plus supporting evidence, with no login, no dashboard, and no human in the loop required.

    How it's made

    ChainHound is a Next.js frontend (Vercel) talking to a Node/Express backend (Railway) that runs the actual investigation pipeline. Given a wallet address, it fetches on-chain transfers directly via ethers.js/Alchemy, pulls swap and lending activity from The Graph's Subgraph MCP, and feeds both into Gemini/Claude for risk scoring — the model only explains numbers we calculate deterministically, it never invents a score. A "Fund Trace" mode re-runs this same pipeline on the wallet's recent counterparties, one hop out, and rolls everything into one pass/fail trail verdict. Partner tech, and why it mattered: The Graph — Subgraph MCP gives us live Uniswap V3/Aave V3 data, not a cached snapshot. We run swaps and lending as two parallel Gemini conversations, each on its own API key, so one category hitting a free-tier rate limit doesn't block the other. ENS — every wallet gets registered on ENSv2 (Sepolia) with a real subregistry: the root wallet owns its own namespace, counterparties become subnames under it. Addresses are turned into pronounceable labels (adjective-noun-number), and the registrar actually resolves a label back before trusting it's free, retrying on a genuine collision. Bazantic — we exposed the same risk-verdict logic as priced x402 Gateways and wrote a Recipe that chains two of them: pull the risk verdict, and if it's flagged, automatically pull Uniswap activity as supporting evidence — one paid call, two services, one combined answer. Hacky/notable bits: the browser UI streams NDJSON progress live as the pipeline runs (we hit — and fixed — a bug where our own Next.js proxy was silently buffering the whole stream, making "live" progress arrive all at once). We also deliberately strip ENS registration from the Bazantic-facing API, since sequential on-chain writes are the slowest part of the pipeline and an agent asking "is this wallet risky" needs a fast answer, not a pretty name.