// legal

Cookies & Local Storage

Last updated 2026-08-06 Operator Blueprint Infrastructure, LLC Service ccprime.xyz
Draft — not yet in force. This document is pending legal review. Every [[…]] marks a term that has not been settled; nothing has been invented to fill one. 1 outstanding on this page.

Two cookies, five local-storage entries and one database — all of them either strictly necessary or the wallet itself. Every one is named below, with what it holds and what happens if you delete it. There is no tracking here, so there is no banner asking you to accept any.

// 01 · The short version

Nothing here follows you anywhere.

ccprime sets two cookies, both strictly necessary: one keeps you signed in, the other carries the short-lived state of a passkey ceremony. Neither is used for analytics or advertising, and neither can identify you on any other site.

Beyond cookies, your browser holds the wallet: an encrypted seed, the salt its key is derived from, your public key, and a display preference. That storage is the product — it is what makes the wallet yours rather than ours.

[ read this before you clear site data ]

Clearing this site's storage deletes your wallet from this browser. If you do not have your 24-word recovery phrase and do not have the passkey that unlocks the stored backup, the wallet is gone and nobody can restore it.

// 02 · Cookies this site sets

Two, and both are necessary.

NamePurposeLifetime
__Host-ccp_sess Your signed-in session. Holds a random token; the server keeps only its hash 30 days by default, or until you sign out or revoke the session
__Host-ccp_chal A signed cookie carrying the short-lived handle for a sign-in ceremony — a passkey registration or assertion, a linked sign-in, or a pending second factor. The ceremony's actual state lives on the server; the cookie only names it The browsing session, and consumed as soon as the ceremony finishes

Both are set with HttpOnly, Secure and SameSite=Lax, on path /. The __Host- prefix is applied when the site is served over HTTPS — it tells the browser to refuse the cookie unless it is host-locked and secure, so no other host can set one in its place. HttpOnly means script running on the page cannot read them.

Neither cookie is set until you interact with an account. A visitor who only reads the site is issued neither.

// 03 · What your browser stores locally

Five entries, under keys you can read yourself.

These live in this origin's localStorage. None is sent to our servers.

KeyWhat it holds
ccprime:wallet:public_key_hex Your wallet's Ed25519 public key, in hex. Public by nature — it is what your Canton party id commits to
ccprime:vault:prf_salt The random salt your passkey's PRF output is combined with to derive the key that wraps your seed, plus its format version
ccprime:vault:credential_id Which passkey credential this browser's vault is bound to
ccprime:vault:passphrase_backup:v1 Only if you create one. Your wallet seed encrypted under a key derived from a passphrase you chose (PBKDF2-SHA256, 600,000 iterations) with its salt and initialisation vector. Never leaves this browser
ccprime:ui:hide_balances Whether the privacy veil over your balances is on. A display preference, nothing more
// 04 · The wallet database

Where the key actually lives.

Database
ccprime_vault
Object store
v1
Record
account
Contents
The AES-GCM ciphertext of your 32-byte wallet seed, its initialisation vector, and the metadata needed to unwrap it — which mode wrapped it, and under which salt version.

The seed is decrypted only inside a scoped signing boundary, after a live passkey gesture, and is zeroed from memory immediately afterwards. It is never held decrypted between actions.

A copy of this ciphertext is also stored on our servers, if you enable the portable backup, so you can restore the wallet on another device. It is the same opaque bytes: the key that opens it is derived from your passkey and never leaves your device. See Privacy § 03.

// 05 · Third-party storage

Only where a third-party surface is actually used.

The page loads no third-party script origin. Two exceptions exist, each active only when that feature is configured and only on the surface that uses it:

  • Stripe — on the checkout surface, when you subscribe to a paid plan. Stripe sets its own storage under its own domains, governed by Stripe's privacy policy.
  • Cloudflare Turnstile — the bot check at registration, when enabled. Turnstile sets its own storage under Cloudflare's domain, governed by Cloudflare's privacy policy.

If you use the USDC deposit route, your own Ethereum wallet software runs in your browser under its own rules. It is not ours and this notice does not cover it.

// 06 · Clearing and controlling it

How to remove each of these — and what it costs you.

  • Sign out to clear the session cookie on this device. Revoke sessions from your account page to invalidate them everywhere, including devices you no longer have.
  • Blocking cookies for this site prevents you from signing in at all. There is no other mechanism; the session cookie is not optional.
  • Clearing site data in your browser removes the local-storage entries and the wallet database together. See the warning in § 01.
  • The privacy veil preference can be toggled in the wallet at any time.
  • Deleting your ccprime account removes the server-side copy of the vault ciphertext, but not the copy in this browser. Both are only ever ciphertext.
[ the safe order ]

Before clearing anything: write down the 24-word recovery phrase, confirm you can still see it, and confirm your passkey is synced to somewhere other than the device in front of you. Then clear.

// 07 · Why there is no consent banner

There is nothing here to consent to.

Consent banners exist because sites set storage that is not necessary to provide the service — analytics, advertising, profiling, cross-site identity. ccprime sets none of it. Everything listed on this page is either strictly necessary to sign you in or is the wallet itself, which is the thing you came for.

That is enforced structurally rather than promised: the site's Content-Security-Policy permits no third-party script origin at all, because script execution on this origin would be equivalent to compromising every wallet on it. An analytics tag could not be added here without breaking the wallet's security model.

[[OPERATOR: confirm this position with counsel for any jurisdiction where a notice or consent obligation attaches to non-cookie browser storage]]

This notice describes the ccprime service as it is built. It is not legal advice.

See also · Privacy Policy · Terms of Service · Risk Disclosure