Privacy policy
Last updated: August 11, 2026 · Version 2026-08-11
What Phantasy stores
In the application database, Phantasy stores your account: email address, role, age attestation date, onboarding state, and an authentication-provider identifier. Supabase, not Phantasy’s database, holds the password hash. Phantasy stores subscription state and an allowlisted record of Stripe’s signed billing events, including the Checkout consent result and the versions of the terms and privacy policy presented. Stripe’s full event body is verified in memory but is not stored; billing names, addresses, email fields, and payment-method metadata are excluded. An account-lifecycle record coordinates Checkout with account deletion and is removed with your profile. At deletion, a minimal record of the payment provider, provider customer identifier, and former account identifier remains so a delayed signed cancellation event can be closed safely; it contains no email or profile. Payment-card details never touch Phantasy’s servers.
Phantasy also stores a security log of account events and IP addresses; your saved research and any note you attach; beta feedback you choose to send, labeled by screen but not by the game or player you were viewing; and temporary rate-limit counters that are swept on a schedule. The hosting platform also keeps ordinary request and application logs. Request metadata can include the route path, response status, timing, and query parameters used by system flows; a game or player identifier can therefore appear when it is part of a page path. Private search sends its term in a non-cacheable request body rather than the URL. Phantasy does not intentionally write search bodies, saved notes, prices, stakes, or memo content to application logs. Product event payloads contain no account or session identifier. Their reviewed fields are limited to details such as email-versus-Google signup method, plan tier, coarse subject type, outcome, and an exact event time. The surrounding host logs and timing can still permit operational correlation, so these records receive the same retention and access controls as other application logs.
For billing notices, the exact recipient and rendered message are held in a durable delivery queue so a temporary email outage cannot lose the notice. Delivered copies are removed after 30 days; permanently failed copies are removed after 90 days, after an operator-visible alert has been raised.
What we deliberately do not store
Everything else in the product — odds, games, projections, recommendations, grades, source records — is market data. It contains no reference to any user: no view history, no per-user analytics tables, no behavioral profile. This is a property of the database schema, not a policy sentence. Saved research is the one place a subject is tied to a person, and it is there because you put it there.
What deletion does
Deleting your account from the account page first blocks new Checkout, expires any open hosted Checkout page, cancels every nonterminal subscription with the payment processor, and verifies that billing is closed. It then removes the authentication record, your profile, and your subscription row in one cascading operation. If any provider read, expiration, cancellation, or final verification fails, the account is not deleted — we would rather stop than leave you paying for an account you cannot reach.
Some records survive, and we would rather name them than imply the record is blank. The security log keeps its entries: they carry the account’s identifier and the IP addresses it was used from, though not your email address. That log is append-only by database trigger — it exists so that a compromise can be reconstructed afterwards, which is a property it would not have if entries could be removed on request. The billing events remain as the record of what was charged and which legal versions were accepted. The minimal billing-deletion record described above also remains so late terminal processor events cannot recreate an account or loop forever. Operational logs and error reports remain for their configured retention periods, and Stripe keeps records required for payment, dispute, tax, fraud-prevention, and legal obligations.
A failed sign-in is logged as a keyed, one-way fingerprint of the address that was tried, never the address itself — so someone who mistypes their email into our sign-in form leaves no readable trace in a log that cannot be edited.
Third parties
Supabase provides authentication and the hosted database; Google receives your identity request when you choose “Sign in with Google” and returns the verified email and provider identifier Phantasy stores; Vercel hosts the application; Cloudflare Turnstile checks public email-authentication requests for abuse; Stripe processes subscriptions; and Resend delivers transactional email when configured. Sentry may receive scrubbed diagnostic error data when error monitoring is enabled. Cookies and authorization headers are removed from server error reports, and Phantasy does not set a Sentry user profile. Each provider receives the information needed for its job. Phantasy does not sell personal data, run advertising, or embed advertising trackers.
Cookies
Phantasy sets only functional cookies, all of them HttpOnly and none of them for tracking: the Supabase session that keeps you signed in, a signed record of the terms version you accepted during signup, and short-lived signed proofs that bind email-verification and password-recovery links to the browser that requested them. There are no advertising or analytics cookies, and nothing here follows you to another site.
Phantasy sends account and billing email: verification, password and email-change confirmations, security notices, and subscription notices. There is no marketing list.
Your choices
You can change your email or password, sign out other sessions, cancel a subscription, or delete the account entirely from the account page.
For privacy questions or requests, email bbbphan2@gmail.com.
Changes
Material changes to this policy will be announced in the product before they take effect.