Bukti
AI fact-checking with Gonka, Sui & Walrus
Created on 5th September 2026
•
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
TruthReportV3object. - 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
ReportPublishedV3event, which powers the public reports index while preserving the immutable receipt invariant.
Tracks Applied (2)
AI × SUI
Sui Foundation
AI For Society
Gonka Router
Discussion
Builders also viewed
See more projects on Devfolio
