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
Read

Dev log

Each change to Proof of Data, in the order it shipped. Releases are also posted on X.

New name

20 October 2026

The project is now Proof of Data and the token is $POD. The SDK moved to /sdk/pod.mjs (the old path redirects there) and the MCP server is listed as proofofdata. The deployed contracts did not change: their addresses, their names onchain and their EIP-712 domains (Dillo Meter, Dillo Plates) stay as they were deployed.

Contracts, sealing, verifier

19 October 2026

Six contracts written and tested: Enclaves, Plates, Meter, Canaries, Epochs and a 48 hour timelock. 45 Foundry tests, fuzzing on the split, the quote and the epochs, and a fork test that settles a query with the chain's real USDG through receiveWithAuthorization.

Browser sealing: HPKE (RFC 9180) on WebCrypto, checked both ways against an independent implementation. The Seal tab in the app runs it with a throwaway key.

The verifier parses a TDX quote, checks the attestation signature, the QE report, the PCK chain to Intel's root and the key binding. It runs in the browser.

The enclave side (query runner with the 25-plate floor, canary views, receipts, epochs, the Armour's training job) runs in a local simulation. It is not in a TEE yet: uploads stay closed until a Phala Cloud TDX VM is up and registered.

The first enclave

Next

Boot the Proof of Data image on a TDX CVM, publish its quote and sealing key, register it with its bond, then open the first wave of the waitlist.