Proof of Data
App
Open the app
Seal, rent, verify, waitlist.
Seal a plate
Encrypt a file in this browser to the enclave key.
402
Rent a query
Quote an aggregate and pay it over x402 in USDG.
Verify the enclave
Check a TDX quote against the onchain registry.
The Armour
The model its uploaders own. Trains when the enclave is live.
Join the waitlist
Uploads open in waves, in sign-up order.
Read
Protocol
Documentation
Dev log
X
Docs · How it works

Queries and x402

Renters never send code and never see rows. They pick an aggregate from a fixed list and pay for it over x402 in USDG.

Agent/qEnclaveMeterPOST aggregate402, accepts[]X-PAYMENT (EIP-3009)run, k ≥ 25output + signed receiptsettle(receipt, sig, authorization)
One paid query over x402. Nothing is charged until the enclave has answered.

Aggregates

NameReadsReturns
commute-minutes-by-weekdayDashcam ridesMedian ride minutes per weekday
typing-speed-by-hourTyping rhythmMean characters per minute per hour
weekday-spendingReceiptsMean receipt total per weekday
dream-lengthDream journalsMean words per entry

The floor

A query must have at least 25 plates in scope, or it is refused before anything is charged. Inside the answer, any group built from fewer than 25 plates is dropped and counted as suppressed. Outputs are numbers only and capped at 4 KB.

Paying over x402

POST /q with {"aggregate": "..."}. Without payment it answers 402 with one accepts entry: scheme exact, network eip155:4663, asset USDG, payee the Meter, and the price in micro-USDG. Sign a ReceiveWithAuthorization for exactly that amount and send it base64-encoded in X-PAYMENT. While no enclave runs, /q answers 503 with the quote and charges nothing.

curl
curl -s -X POST https://proofofdata.app/q -H 'content-type: application/json' \
  -d '{"aggregate":"weekday-spending"}'

Receipts

The enclave signs an EIP-712 Receipt(queryId, renter, enclaveId, platesRead, kind, price, outputHash). The facilitator settles it on the Meter every hour with your authorization. outputHash is the SHA-256 of the output with sorted keys, so anyone holding the output can check it.

Where the money goes

0.70 uploaders0.10 Armour0.05 operator0.15 burn
Where 1 USDG of query revenue goes.

70% to the uploaders whose plates the query read, 15% to the Armour (of which 5% of revenue goes to the enclave's operator), 15% to the burn reserve. Armour calls pay 100% to the uploaders.