Sealed data.
Rented, never seen.
Your strangest data is worth something, and it never leaves its shell. Labs and agents rent it inside an attested enclave, and 70% of every query goes to the people whose plates it read.
The shell, drawn
A plate is one file and its type: a voice note, a dashcam ride, a dream journal. Each one is a cell of the armour. Renters can read the shape of the shell but not what any cell holds.


Four steps
Each step fixes what goes on the public record and what stays sealed. The line in each row shows where the record stops.
Seal
Your browser encrypts the file to the enclave's attested key before it leaves the phone. Only its hash, type, size and owner go onchain.
- On the record
- Plate hash, type, size, owner
- Sealed
- The contents
- Measured
- HPKE X25519 + AES-GCM
Query
A renter asks for an aggregate or an evaluation. It runs inside the enclave and only the answer leaves, with a signed receipt.
- On the record
- Price, plates read, receipt
- Sealed
- Every row it read
- Measured
- k ≥ 25 plates
Canary
Each renter's view carries made-up rows that exist nowhere else. If one surfaces outside, its secret is the proof.
- On the record
- The revealed secret, the case
- Sealed
- The other canaries
- Measured
- 48 h challenge
Payout
70% of every query goes to the uploaders whose plates it read, posted daily as a merkle root and claimed in USDG.
- On the record
- Each account's daily total
- Sealed
- Which query read which plate
- Measured
- 1 root a day
A canary for every renter
The enclave mints made-up rows inside each renter's view: names, emails, phone numbers, URLs. Each carries a random secret that exists nowhere else, so anyone who knows one must have seen that row.
Every view has its own rows
The enclave commits a merkle root of a view's canaries onchain before the view answers its first query. Nobody else's view contains them.
A leak is a proof
Whoever finds a canary outside (a fetched URL, a mail to a canary address, a string in a published model) reveals its secret and the proof. The contract checks it.
The deposit goes to the uploaders
The renter has 48 hours to dispute. Otherwise its whole USDG deposit moves to the uploaders. An enclave canary slashes the operator's $POD bond instead.
A canary proves that a row left the enclave through one view. How cases and disputes run.
Three things a data market does not usually do
Deleting a plate takes it out of the next payout and the next training. The model belongs to the people whose plates trained it, and the operator stakes its own token on the box it runs.
Delete means deleted
Remove a plate from the app or with one signed message. It leaves the next epoch's set and the next Armour training, and its ciphertext is dropped from the enclave disk.
- On the record
- The delete flag
- Sealed
- What the plate held
A model its uploaders own
The Armour is a LoRA adapter on Qwen2.5 0.5B Instruct, trained on CPU inside the enclave each week. Its weights never leave. Every call pays the uploaders whose plates trained it. It trains when the enclave is live.
- On the record
- 0.002 USDG a call
- Sealed
- The weights
Operators bond behind the box
An enclave can hold plates only after its operator bonds 100,000 $POD. If an enclave canary surfaces, half the bond is burned and half goes to the uploaders. The operator earns 5% of query revenue.
- On the record
- Bond, image hash, quote hash
- Sealed
- The enclave canaries
Fixed in the contracts
These numbers are constants or timelocked parameters in the Meter, Enclaves and Canaries contracts. Changing a parameter waits 48 hours in public.
of every query, pro-rata to the plates it read. 15% to the Armour, 15% to burn $POD.
the least any aggregate may read. Fewer and the enclave refuses before it charges.
bonded by its operator, slashed by an enclave canary: half burned, half to uploaders.
to dispute a canary case. After that anyone can finalize the slash.
An armour of plates, and nothing it lets out.
Six plate types on day one, voice notes and dashcam rides among them. You can seal one from your phone once the enclave runs. Agents can already call the query API for quotes.