The problem in one query
Every Arkiv entity stores its$owner and $creator, and both are indexed. Anyone can run:
What Arkognito changes
Measured on Tiramisu, an outside observer trying to group 50 records from 5 people did no better
than random guessing. See the linkage experiment.
Start here
Quickstart
Run a relayer and write your first private record in about five minutes.
Add it to an app
Replace
createEntity with the private client. Same parameters.Self-host the network
Two relayers, a token issuer and an OHTTP relay with one
docker compose up.Understand the design
How one-time owners, batching, blind tokens and Oblivious HTTP fit together.
What is in the box
- SDK (
arkognito): derives one-time owners in a Web Worker, seals and pads records, finds and verifies your records privately, issues ownership proofs, handles rate-limit tokens and Oblivious HTTP. Works in browsers and Node. - Relayer: batches records from many users, writes them to Arkiv, hands each to its one-time owner, and pays the gas. Anyone can run one.
- Token issuer: hands out daily blind rate-limit tokens, so relayers can limit writes per person without learning who wrote what.
- OHTTP relay: forwards encrypted requests so relayers never see users’ IP addresses.