Inspiration

Climate claims are everywhere, but the evidence behind them is often difficult to compare. A statement like “we reduced emissions by 40%” can leave out the baseline, reporting period, or scope.

We built Climate Court to help people ask better questions, inspect the evidence, and distinguish measurable progress from claims that still need verification.

What it does

Climate Court turns a sustainability claim into a structured investigation. Users can submit a claim, paste supporting material, upload text-based PDFs, and inspect extracted assertions, source passages, contradictions, and evidence gaps.

The platform generates an explainable assessment and a versioned report. Users can register a finalized report’s SHA-256 fingerprint on a local blockchain, then independently verify whether its contents still match.

Missing evidence never automatically means a claim is false. Blockchain verification establishes report integrity—not source authenticity or scientific truth.

How we built it

We used Next.js, React, TypeScript, Tailwind CSS, and Lucide for the interface, with server-side route handlers and separate services for ingestion, assessment, persistence, and auditing.

The core workflow uses deterministic extraction and assessment, so it runs without paid API keys. An optional Gemini adapter provides schema-validated ambiguity suggestions with bounded retries and fallback.

Local persistence uses validated JSON, atomic writes, a single-writer guard, and verified backups. An optional Supabase adapter supports revision-based conflict detection.

For auditing, we built an operator-controlled Solidity registry using Hardhat, Ethers.js, and a local EVM. Credentials remain server-side, and shared access requires an authenticated operator session.

Challenges we ran into

The hardest problems appeared between successful steps. A blockchain transaction could confirm while saving its local receipt failed. We added persisted operation states and registry reconciliation so retries recover the same registration.

Evidence processing also required care. Early deduplication could merge 1.2 tonnes with 12 tonnes, and case folding could confuse MWh with mWh. We corrected the logic to preserve those distinctions.

We also addressed PDF parsing failures, stalled network operations, misleading health checks, and UI retries that could lose input or create duplicate records.

Accomplishments that we're proud of

  • Built a complete claim-to-report-to-blockchain-verification workflow without mandatory cloud accounts or paid APIs.
  • Passed 34 automated tests, browser success and failure checks, and 10 consecutive end-to-end rehearsals.
  • Verified recovery from confirmed-but-unsaved transactions, chain stalls, conflicting digests, and chain resets.
  • Added secure access controls, bounded PDF processing, backup restoration, and readiness checks.
  • Preserved historical report snapshots while correcting the illustrative dataset.

What we learned

A credible investigation tool must make uncertainty visible. Traceable passages, explicit scope, and honest evidence gaps matter more than a confident-looking score.

We also learned that a successful walkthrough is only the beginning of reliability testing. Partial failures, retries, restarts, and resource limits determine whether a live demonstration remains trustworthy.

AI can assist interpretation, but structured evidence and deterministic rules must control the assessment.

What's next for Climate Court

We want to add a human-reviewed evidence classification workflow, richer comparisons across reporting periods and emissions scopes, and stronger provenance tools.

We also plan to validate the optional Gemini and Supabase integrations with live services, support authenticated collaboration, and explore public-testnet anchoring.

Throughout that work, our priority remains the same: every finding should point to evidence—or clearly explain what is missing.

Built With

Share this project:

Updates

Submission history