Back to Projects

CipherQuery

TypeScript
Next.js
0G
Supabase
Private Compute
TEE
Vitest
CipherQuery

Overview

CipherQuery lets buyers ask plain-language questions about a seller's private structured dataset without receiving the raw records. CSV, JSONL, NDJSON, and flat Parquet samples travel over encrypted transport, are parsed only in memory, and are evaluated through one private 0G request. Eight paid synthetic evaluations matched their known expected scores and returned TEE-verified execution metadata.

Problem

Dataset buyers need evidence that private data can answer their questions, while sellers cannot safely expose the underlying rows. A useful evaluation also has to distinguish protected execution from whether the model's answer is accurate.

Solution

Built separate buyer and seller capability flows, bounded in-memory parsers for four file formats, one atomic 0G Private Computer request per evaluation, and strict fail-closed validation. TEE metadata confirms the protected execution path; accuracy is checked separately against known expected results. Raw datasets and raw 0G responses are intentionally not retained.

Key screens from the build, framed for context. Open any shot for full size.

Figure 1CipherQuery's public overview — private dataset questions in, TEE-verified answers out, with zero raw rows exposed to the buyer.

CipherQuery's public overview — private dataset questions in, TEE-verified answers out, with zero raw rows exposed to the buyer.

Figure 2The documentation maps the workflow from plain-language buyer questions to a bounded seller sample and verified question-level results.

The documentation maps the workflow from plain-language buyer questions to a bounded seller sample and verified question-level results.

Figure 3The 0G and TEE boundary is explicit: protected execution is verified separately from the accuracy of a model judgment.

The 0G and TEE boundary is explicit: protected execution is verified separately from the accuracy of a model judgment.

Command Palette

Search for a command to run...