Privacy Policy

What we collect, why, and how to control it

Last updated: 2026-05-11. This policy covers chainlore.dev, dashboard.chainlore.dev, and the @chainlore/xrpl-codex npm package. Plain English. No dark patterns.


The minimum we need to run your apprenticeship

Account data — email address, display name, and (if you sign in with Google) your Google profile photo URL. Stored in our Supabase database in the United States.

Subscription data — if you subscribe, Stripe (our payment processor) returns a customer ID and subscription status. We store the ID, your selected tier (apprentice / practitioner / master), trial status, and the chains you've selected to learn. We never see your card number; Stripe holds that.

Activation data — when you run npx chainlore activate, the codex computes a 16-character SHA-256 fingerprint of your machine (hostname, OS, architecture, CPU model). We store that fingerprint along with which chains you activated and when. The fingerprint is one-way; we cannot reverse it to identify your hardware.

Learning progress — module completion state, certificates earned, and your community rank. Stored against your account so you can pick up where you left off across devices.

Usage logs — our API records request timestamps, status codes, and IP addresses for security and abuse prevention. Logs are retained for 30 days and then deleted.


Three named subprocessors. That's it.

01 — Supabase

Database + authentication

Stores your account, subscription state, progress, and license activations. US region. Subject to Supabase's privacy policy at supabase.com/privacy.

02 — Stripe

Payments

Processes subscriptions and stores your billing details. We never see or store your card. Subject to Stripe's privacy policy at stripe.com/privacy.

03 — Google

Sign-in (optional)

Only used if you choose "Sign in with Google". We receive your email, name, profile picture URL, and a stable user ID. We request only the email and profile scopes — nothing else. Subject to Google's privacy policy at policies.google.com/privacy.

We do not sell data. We do not share data with advertisers. We do not embed third-party trackers or analytics on chainlore.dev or dashboard.chainlore.dev.


You own your data. We hold it on your behalf.

01
Access

Email support@chainlore.dev and we'll send you a JSON export of everything we hold on you within 30 days.

02
Correction

Update your display name and selected chains directly in dashboard.chainlore.dev/settings. For anything else, email us.

03
Deletion

Cancel your subscription in dashboard.chainlore.dev/settings. Email support@chainlore.dev to delete your account entirely — we remove your record within 30 days. Stripe retains billing records for tax/legal reasons (7 years, per US tax law).

04
Portability

Progress data and certificates are exportable. The codex content you've activated stays in your .chainlore-license.json — that file is yours, on your machine, not ours.


How long we keep things

Account + progress data: for as long as your account is active, plus 30 days after you request deletion.

License activation records: for the lifetime of your subscription. After cancellation, retained for 90 days so you can reactivate without re-paying for a partial month.

Stripe billing records: 7 years (US tax law requirement, held by Stripe).

Server logs: 30 days, then deleted.


Session only. No tracking.

The dashboard stores your Supabase auth session in browser localStorage so you don't have to sign in on every page load. That's the only state we keep client-side. No third-party cookies, no analytics pixels, no advertising tags.


Questions?

Email support@chainlore.dev. We try to respond within two business days.

For GDPR or CCPA requests, include "Data Request" in the subject line and we will respond within the statutory deadline (30 days GDPR, 45 days CCPA).

Postal: Chainlore, 1811 Stillwood Drive, Savannah, GA 31419, USA.

Read the terms too — they're short

The terms of service cover subscription terms, refunds, and acceptable use. Three minutes to read.

Read the Terms →