# Rock v0 — Caveman Security

A **Rock** is the small public proof pack for an attested capture.

Brand line: Prove the clip came from the world.

## What a verifier must check (order)

1. **Media hash** — SHA-256 of the bytes the viewer has equals `media.hash`.
2. **Device seal** — `device.signature` verifies over `signed_payload` with `device.pubkey` (ed25519).
3. **Capture binding** — signed payload includes `capture.commitment` and `capture.captured_at`.
4. **Witnesses** — at least one witness with `status: valid` and coherent `observed_at`.
5. **Edit proof** — `edit.status` is `valid` for the published encode (or `identity` transform only in early stubs).
6. **Demo flag** — if `demo: true`, stamp DEMO; never treat as production truth.

## Location grades

- `hidden` — sky valid, no map pin
- `city` — coarse place label
- `precise` — finer claim only when witness quality supports it

## Non-goals for v0

No markets. No balances. No transfer ledgers. Rock proves capture authenticity.

## Files

- `rock-v0.schema.json` — machine schema
- `../samples/rock-pass.json` / `rock-fail.json` — Cave Check demos (demo: true)
