Inspiration

Approximately 62% of online content has been classified as false or misleading. 86% of the global population has been exposed to misinformation. The World Economic Forum rated misinformation as the #1 global risk in 2025. The entire global fact-checking infrastructure — Snopes, PolitiFact, Reuters Fact Check, all of them — can check perhaps a few dozen claims per day. On any given day, millions of claims go viral. Fewer than half of prominent misinformation narratives during the 2022 US midterms were ever fact-checked at all.

The problem isn't that people don't want truth — it's that the system for delivering it is too slow, too centralised, and too easy to manipulate. A verdict that arrives three days after a false claim has already reached ten million people is not a solution.

TruthCast is the system designed to close that gap.

What it does

TruthCast is a fully autonomous multi-agent AI pipeline that fact-checks any claim in under 30 seconds and writes the verdict permanently to the Solana blockchain.

Paste a claim, article URL, tweet, or YouTube video. Six AI agents go to work:

  1. Ingestion — classifies whether the input is actually verifiable (opinions and predictions return UNVERIFIABLE immediately), then decomposes compound claims into atomic sub-claims
  2. Research — uses Gemini with real-time Google Search grounding to retrieve evidence, scoring every source against the Media Bias/Fact Check expert-rated dataset (~4,000 domains)
  3. Adversarial debate — when evidence is ambiguous, two AI agents argue opposite sides before a moderator synthesises the verdict
  4. Verdict — assigns one of seven labels (TRUE, MOSTLY TRUE, MISLEADING, MOSTLY FALSE, FALSE, CONFLICTING, UNVERIFIABLE) with a deterministic confidence score and an auditable three-sentence reasoning chain
  5. Publication — writes a tamper-proof proof to Solana, caches the full verdict locally, and triggers ElevenLabs to deliver the verdict as natural voice audio

Every verdict is permanently recorded on the Solana blockchain. No one — not TruthCast, not any government, not any platform — can edit, delete, or censor it. The truth ledger grows with every check, becoming more valuable for every future user.

A Chrome browser extension lets you highlight any text on any webpage and fact-check it in place. A public Solana explorer page shows the entire verdict history read directly from the blockchain — no TruthCast server involved.

How I built it

TruthCast is a TypeScript mono-repo with four packages: shared (Zod schemas, MBFC dataset, constants), pipeline (orchestrator and agents), web (Next.js 15), and extension (Chrome Manifest V3).

Pipeline architecture follows peer-reviewed research at every stage:

  • Stage 0 — SHA-256 hashes the normalised claim, checks SQLite for a cached verdict with TTL policies (SHORT: 7 days for current events, LONG: 90 days, STATIC: forever for historical facts), returns instantly on a cache hit
  • Stage 1 — applies the HiSS hierarchical step-by-step decomposition method (ACL 2025) to split compound claims into atomic sub-claims; filters non-verifiable inputs at the gate
  • Stage 2 — Gemini 2.5 Flash with google_search grounding retrieves real-time evidence; every returned domain is scored against the MBFC expert-rated dataset as primary, Gemini credibility assessment as fallback; computes a weighted agreement score
  • Stage 3 — conditional adversarial debate following the DebateCV architecture (WWW 2026): if agreement_score < 0.8, an affirmative agent and a negative agent argue opposite positions before a moderator synthesises the result
  • Stage 4 — moderator produces the final verdict using a deterministic confidence formula: (source_tier × 0.4) + (agreement × 0.35) + (debate_consensus × 0.25) × (0.9 ^ (n_subclaims − 1))
  • Stage 5 — writes a minimal ~100-byte JSON proof to Solana via the Memo Program (MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr), indexes the full verdict in SQLite, calls ElevenLabs TTS in parallel

Real-time progress uses Server-Sent Events — each agent emits a completion event, updating a live progress bar in the browser.

OpenClaw is integrated as a skill layer — a SKILL.md that teaches the OpenClaw agent to invoke TruthCast via bash, making the pipeline accessible through any OpenClaw-connected channel.

Solana two-layer design — SQLite handles fast O(1) cache lookups; Solana provides the immutable cryptographic audit log. The chain is the truth layer, not the query layer.

Sentry instruments the five highest-risk pipeline operations. An in-memory rate limiter protects Gemini quota during demos.

Challenges I ran into

Solana memo size limit — The Memo Program caps messages at 1,232 bytes. The first implementation tried to write the full verdict JSON (~1,300 bytes) and failed at runtime. The solution was a two-layer architecture: write only the minimal proof on-chain (claim hash, verdict label, confidence, timestamp, pipeline version — ~100 bytes) and store the full verdict in SQLite. This is actually the architecturally correct design — the chain is the audit layer, not the storage layer — but discovering it required a runtime failure first.

OpenClaw's actual architecture — The original plan specified a file-based YAML pipeline with a PIPELINE_DIR handshake between agents and [END] signals. OpenClaw does not work this way. It is a Gateway-based chat runtime where skills are Markdown files injected into the agent's system prompt. The correct integration is a SKILL.md that teaches the OpenClaw agent to invoke TruthCast via bash. Discovering this required reading the source code directly.

Gemini free tier quota — The 20 requests/day limit on certain endpoints constrained live pipeline testing during development. Mitigation: pre-cache all five demo claims in SQLite at startup so Stage 0 returns them instantly without hitting the API.

Compound claim verdict aggregation — When Stage 1 decomposes a claim into multiple sub-claims that return different verdicts (e.g. TRUE + FALSE), the moderator needs an explicit aggregation rule, not just "synthesise." Implementing a deterministic severity-ranked aggregation algorithm (FALSE > MOSTLY_FALSE > CONFLICTING > MISLEADING > MOSTLY_TRUE > TRUE) was a non-obvious but necessary architectural decision.

Accomplishments that I am proud of

Research-grade architecture — every major design decision in TruthCast traces to a peer-reviewed finding: HiSS decomposition (ACL 2025), DebateCV adversarial debate (WWW 2026, published one month before this hackathon), MBFC domain credibility scoring (EPJ Data Science 2026), MADR explainable reasoning (arXiv 2024). This is not a demo that wraps a single API call.

Genuine Solana integration — the public Solana explorer page reads verdict history directly from the blockchain without touching TruthCast's backend. It demonstrates real decentralisation, not a claim of it. Any person, anywhere, can independently verify any verdict without trusting TruthCast.

Edge case handling — the pipeline correctly identifies opinions as UNVERIFIABLE, decomposes compound claims before checking each sub-claim independently, triggers adversarial debate only when evidence genuinely conflicts, and surfaces a minority view when high-quality sources disagree. Most fact-checking demos break on these cases.

Verdict confidence is deterministic — the confidence score is not a vibe. It is a defined formula with documented weights, a sub-claim penalty, and reproducible results. A judge can read the formula and understand exactly why a claim scored 84% vs 100%.

What I learned

OpenClaw's real architecture — The framework is really good as a Gateway-based chat runtime with a skill injection system, not a subprocess orchestrator. Skills are Markdown files that teach the agent to use external tools. Understanding this required reading source code rather than documentation examples.

Blockchain as audit layer, not database — Solana's Memo Program is the right tool for data provenance, but only when you pair it with an off-chain index. Trying to use the chain as a query layer leads directly into the 1,232-byte limit and slow transaction scans. The two-layer design (SQLite for speed, Solana for immutability) is the production-correct pattern.

Adversarial debate actually works — The quality difference between single-agent and debate-mediated verdicts on ambiguous compound claims was measurable and significant. The DebateCV paper's findings held in practice: the affirmative/negative structure surfaces contradictions that a single agent rationalises away.

Source credibility is the most important signal — Agreement score and debate consensus matter, but the domain credibility tier (MBFC Tier A vs Tier C) dominates the confidence formula. A claim supported only by Tier C sources with high agreement is less trustworthy than a claim with one Tier A source and mild disagreement.

What's next for TruthCast

Chrome Web Store submission — the extension is built and tested; submission is the immediate next step post-hackathon.

B2B API — a verdict feed endpoint for newsrooms, social platforms, and enterprise compliance teams who need programmatic access to the growing truth database.

Semantic deduplication — replace the current token-sort claim normalisation with a lightweight embedding model that clusters semantically equivalent claims. This dramatically improves cache hit rate and reduces redundant API calls.

ClaimReview schema — already implemented as a /api/review/[claim_hash] endpoint returning Schema.org ClaimReview JSON-LD. Once indexed by Google, TruthCast verdicts will surface directly in search results next to the original claims.

Solana mainnet — migrate from devnet to mainnet as the truth ledger becomes a genuine public good. Transaction costs are approximately $0.000025 per verdict — essentially free at scale.

The long-term vision — a permanently archived, censorship-resistant, community-owned truth database that no government, platform, or corporation can alter. Every claim checked by any user enriches the ledger for all future users. The network effect of truth.

Built With

Share this project:

Updates