Privacy

What we log.

The short version: request metadata, with identifiers stored as salted hashes. Not your payloads. One page, matching what the code actually does.

Per request

The metadata we keep.

Every API call writes one request-log row, used for operating the service and computing public metrics (uptime, call counts, revenue buckets). Each row holds:

Quota counters (free tiers, demo tier) keep the same kind of hashed identifier with first-seen and last-seen timestamps.

Payloads

What we do not store.

We do not store request bodies or the content of what buyers ask: not the research queries, not the code sent for verification, not the job payloads. Paid POSTs may carry an Idempotency-Key; when they do, the request body is hashed (never stored) and the answer is cached for up to 24 hours so a retry replays it without a second charge. Card numbers never touch us: Stripe processes the card payment, and at claim time we receive only the checkout session id and the buyer's email address, which is stored with the credit account.

Third parties

Where data goes by design.

Two flows are outside our logs by nature. Stripe payments are processed by Stripe under their privacy policy; we never see card details. x402 payments settle in USDC on Base, a public chain: the payer wallet, the amount, and the transaction hash are visible to anyone who looks, forever. The CDP facilitator (Coinbase) sees the payment payloads it settles. Server logs live on one DigitalOcean droplet with access restricted to the operator.

Retention and deletion

Kept for operation, deleted on request.

Request-log rows and quota counters are kept for service operation and metrics; there is no advertising use and no sale of data. Ask for deletion of records tied to your wallet, key hash, or email at hello@attester.dev and we delete them, except where an on-chain record or a legal obligation makes that impossible. On-chain transfers cannot be altered or removed by anyone.

Last updated 2026-07-23. See also /terms and /policy.