05 · MVP plan (limited time)
Mumbai event MCP window ends 2026-11-10. Plan for ~2.5 days.
Scope cut#
| Must ship (demo) | Nice to have | Later |
|---|---|---|
put / get with AES-256-GCM + padding | Blind index search | TEE guardians |
| Per-record DEK, 2-of-3 Shamir (device, passkey-mock, 1 guardian) | Epoch + collection shred | ML-KEM in production config |
Poseidon commitment + one Noir circuit: range | membership + nullifier circuit | ct_consistency, not_shredded |
verify in browser, no keys | Ephemeral signer per write | Relayer / gas pool |
shred record-level + ShredReceipt entity on Arkiv | Auto-shred on expiry | Account-level shred UI |
| Demo page: "archive node view" showing ciphertext before and after shred |
Day plan#
diagram
rendering diagram…
Demo script (3 minutes)#
- Alice stores a medical record. Show Arkiv explorer: only noise + commitment.
- Alice proves
age >= 18to a pharmacy dApp. Pharmacy verifies, sees nothing else. - "Archive node" panel copies the raw ciphertext to disk (simulating an old node runner).
- Alice clicks Delete forever. Guardians sign, receipt appears on Arkiv.
- Archive node tries to decrypt with everything it has: fails. Verifier now rejects old proof (record shredded).
Folder plan for code#
arkivzk/
packages/
crypto/ # aes, hkdf, shamir, padding, poseidon wrapper
core/ # schemas, envelope format
vault/ # key hierarchy, shares, custodians client
zk/ # noir circuits + prove/verify
shred/ # protocol, receipts
sdk/ # public API
guardian/ # tiny Node service, RAM-only share store
circuits/ # noir projects: range, membership
demo/ # web demo
docs/ diagrams/
Open decisions (need answer before coding)#
- Frontend stack for demo: Next.js or plain Vite?
- Signing mode for Arkiv writes: wallet (preferred) or local env key?
- Noir vs Circom – default Noir, switch if WASM prover gives trouble.
- Real ML-KEM now (
@noble/post-quantum) or X25519-only for MVP with PQ as roadmap slide?