Privacy

Last updated 14 October 2026. This page covers the hosted demo at grainmark.app (alias proofsheet.rick3.dev). Grainmark is operated by Hoopes Group LLC, an Oregon limited liability company (Oregon Business Registry No. 263985690); "we" and "us" in this page mean Hoopes Group LLC.

What you send

If you seal or verify media, the file bytes are uploaded to this server so it can build or check a Grainmark sidecar. There are no accounts. We do not use the files for advertising or model training.

What we keep

Private vs published

New seals stay private. The public list, lookup, metadata, download, and verify-by-id paths do not expose a private seal unless you send the create-time access token or you publish it. Publishing is an explicit action. Old test seals from before this rule may remain on disk; they are not listed.

What a green result means

A match is an unsigned visual comparison against a sidecar you supplied or a seal this host still holds. It is not a camera signature, or a claim that the scene was never generated or edited outside the tested visual envelope. A confirmed timestamp proves the seal existed no later than Bitcoin block time T. It does not prove who captured the media, when it was captured, or that it was sealed at capture. Audio and playback timing are not compared.

Once an hour Grainmark sends one random-looking 32-byte value to public OpenTimestamps servers; nothing in it identifies media, people, or seal counts.

The iOS app generates a random install id and sends it only as the X-Grainmark-Install header to count the free photo and video allowance. It does not link that id to an identity and does not use it for tracking.

Stripe stores the email collected at checkout. This server stores the Stripe customer id, subscription id, and plan next to the key hash, not a card number.

Logs and contact

The reverse proxy and application may log request time, path, status, and client IP. No account cookies. Questions: hello@rick3.dev.