Skip to content
Bukti

Bukti

AI fact-checking with Gonka, Sui & Walrus

Created on 5th September 2026

•

Bukti

Bukti

AI fact-checking with Gonka, Sui & Walrus

The problem Bukti solves

Public claims are easy to share but difficult to verify later. Context changes, sources disappear, and an AI answer by itself does not provide a durable audit trail.

Bukti makes this workflow safer and easier by:

  • Accepting either a text claim or a public URL for checking.
  • Retrieving bounded evidence from public pages and social posts while defending against unsafe URLs and oversized responses.
  • Searching for supporting and contradicting sources, with Malaysian official and established news domains ranked first when relevant.
  • Asking multiple Gonka models to assess the claim and surfacing their scores, verdicts, reasoning, citations, request IDs, and disagreements.
  • Limiting unsupported claims to a cautious score ceiling when no evidence can be retrieved.
  • Storing the canonical result as a public Walrus snapshot and committing its SHA-256 digest to an immutable Sui TruthReportV3 object.
  • Providing public report pages and a Sui event-backed report index so anyone can inspect the receipt without trusting Bukti's database.

Challenges we ran into

  • Keeping the receipt reproducible: Browser and server serialization can differ if object ordering or formatting is left implicit. We solved this with a deterministic canonical JSON serializer and hash the exact bytes before and after the Walrus round trip.
  • Handling unreliable storage propagation: A Walrus blob may not be immediately readable after upload. The publisher retries short-lived 404/5xx responses, then refuses to continue if the downloaded bytes do not hash to the original digest.
  • Making user-supplied URLs safe: Claims can point to attacker-controlled URLs, including private-network targets or redirect chains. Direct retrieval validates schemes, credentials, DNS results, redirects, response size, content type, and timeouts before returning a bounded text excerpt.
  • Preventing unsupported certainty: Models can produce a confident answer even when no source is available. Bukti caps scores without retrieved evidence and validates every model citation against the sources actually supplied to it.
  • Building a public report list from immutable objects: Frozen Sui objects are not edited in place and are not convenient to enumerate directly. The Move package emits a permanent ReportPublishedV3 event, which powers the public reports index while preserving the immutable receipt invariant.

Tracks Applied (2)

AI × SUI

Bukti uses Sui as the trust and provenance layer for AI-generated claim analysis. Each completed verification can be pub...Read More

Sui Foundation

AI For Society

Bukti applies Gonka Router to a practical public-interest problem: helping people assess claims that affect civic inform...Read More

Gonka Router

Discussion

Builders also viewed

See more projects on Devfolio