Last updated: July 26, 2026
We collect the bare minimum needed to power your experience. No tracking, no ads, no third-party analytics.
| Data | Purpose |
|---|---|
| Username | Display on leaderboard, PlebTalk forum, LightningMart, and direct messages |
| Email (if provided) | Account verification via magic link sign-in |
| Sign-in provider | Google, Twitter/X, GitHub, Facebook, Nostr (NIP-07), or Lightning (LNURL-auth) authentication |
| Profile picture | Optional avatar upload (resized to 128px JPEG, stored in Firestore) |
| TOTP 2FA secret | Encrypted TOTP secret for two-factor authentication (if enabled) |
| Points & rank | Gamification and leaderboard |
| Streak & visit count | Daily streak tracking and visit bonus |
| Channels visited | Progress tracking and exploration map |
| Orange Tickets | Giveaway eligibility and referral rewards |
| Referral code | Referral program tracking |
| Giveaway entry (Lightning address) | Prize distribution if you win |
| Hidden badges earned | Badge/achievement tracking |
| Weekly XP (weeklyXP) | Weekly leaderboard ranking (resets every Monday) |
| Monthly XP (monthlyXP) | Monthly leaderboard ranking (resets on the 1st of each month) |
| Nook inventory (streakFreezes, hintTokens, hashBoosters, doubleXPCharges, bonusSpins, raffleEntries) | Consumable item counts for Nacho's Nook shop |
| Owned cosmetics (ownedCosmetics) | List of purchased cosmetic items (Profile Frame, Chat Flair, Pinned Badge, Nacho Skin, Second Mining Rig) |
| Double XP expiry (doubleXPExpiry) | Tracks when Double XP multiplier expires |
| Shop purchase history (shop_purchases subcollection) | Server-side log of Nook purchases for audit and dispute purposes |
| Scholar certification status | Certification tracking |
| Favorites | Saved channel list sync across devices |
| Bookmarks | Saved channel bookmarks synced across devices via Firestore |
| Social links (Twitter/X, Instagram, TikTok, GitHub, Nostr) | Display on public profile (optional, user-provided) |
| Contact email (if provided) | Display on public profile for contact (optional, separate from sign-in email) |
| Online presence (lastSeen timestamp) | Show online/away/offline status on leaderboard and profiles (can be disabled in Settings) |
| Blocked users list | Synced block list to prevent unwanted messages across devices |
| Data | Purpose |
|---|---|
| Message text | Deliver private messages between users |
| Sender & recipient IDs | Route messages to correct users |
| Timestamps | Display message times, sort conversations |
| Unread counts | Show unread badge notifications |
| Data | Purpose |
|---|---|
| Posts & replies | Community discussion |
| Author username & ID | Attribution and profile linking |
| Upvotes | Content ranking |
| Data | Purpose |
|---|---|
| Listing details (title, description, price, images) | Display marketplace listings |
| Seller username & ID | Attribution and profile linking |
| Buyer-seller messages | Facilitate transactions |
| Uploaded images | Stored as base64 in Firestore (max 5MB, resized to 800px) |
| Data | Purpose |
|---|---|
| Audio file (Firebase Storage or base64) | Store and play user-uploaded music tracks (max 50MB each via Storage) |
| Track metadata (title, artist, genre) | Display track information in the music player |
| Album/EP metadata (album title, type, year, track number) | Group tracks into albums or EPs for organized display |
| Cover art (image file) | Album/track artwork shared across grouped uploads |
| Play count | Track popularity and display play statistics |
| Likes | Track popularity and user preferences |
| Author ID & username | Attribution and track ownership |
| Copyright confirmation | Record that uploader confirmed rights ownership |
| Data | Purpose |
|---|---|
| Chat messages | Display in the public global chat room |
| Sender username & ID | Attribution and user identification |
| Timestamps | Message ordering and display |
| Reply references | Threading replies to specific messages |
| Data | Purpose |
|---|---|
| DJ username & ID | Display who is currently DJing |
| Current track info (title, artist, audio URL) | Broadcast now-playing info and stream audio to listeners |
| Playback position | Sync listener playback to DJ's current position |
| Sound effect events | Relay DJ sound effects to listeners in real time |
| DJ queue | Manage turn-based DJ booth access |
| Data | Purpose |
|---|---|
| User ID & username | Identify who is online |
| Last seen timestamp | Determine active users (within last 3 minutes) |
Presence data is automatically deleted when you leave the site. The online user count is displayed next to the Global Chat icon.
| Data | Purpose |
|---|---|
| Event title, date, location | Display and search for meetups |
| Event description & link | Provide event details to attendees |
| Cover photo (Firebase Storage) | Display event imagery (max 3MB) |
| Host user ID & display name | Attribution and event management |
| Attendee list (user IDs) | RSVP tracking and attendance count |
| Data | Purpose |
|---|---|
| Notification type & message | Alert you about sats claims, new DMs, streak milestones, and exploration achievements |
| Sender & recipient IDs | Route notifications to the correct user |
| Timestamps | Display notification times and expiration |
| Read/unread status | Badge count and notification management |
| Data | Purpose |
|---|---|
| Aggregate counters (channel reads, quests, spins, chats, PVP matches) | Display community-wide activity stats — no individual user data |
| User count | Display total registered users |
Community statistics are fully anonymous aggregate counters. They do not contain any personally identifiable information.
| Data | Purpose |
|---|---|
| Prediction (up/down), price at time | Track daily prediction accuracy |
| Accuracy stats (total, correct, streak) | Display prediction stats on profile |
| Active predictions | Pending predictions resolved server-side via Cloud Function every 6 hours |
Global Chat messages may be forwarded to a linked Telegram group via a secure Cloud Function. Messages from Telegram users are also displayed in Global Chat. The bridge transmits: username, message text, and image/GIF URLs. No personal data beyond your chosen username is shared with Telegram.
The Bitcoin Dashboard fetches public market data from third-party APIs including CoinGecko, ColintalksCrypto (CBBI), alternative.me (Fear & Greed), mempool.space, and Bitbo.io. No user data is sent in these requests — they are read-only public API calls. Indicator data may be cached in your browser's localStorage for up to 1 hour.
| Data | Purpose |
|---|---|
| Battle results & scores | Track PVP battle history and rankings |
| Opponent pairing | Match players for competitive quizzes |
| Data | Purpose |
|---|---|
| Trail progress (channels completed) | Track which channels you've read in each guided learning path |
| Exam scores & answers | Grade trail exams (25 questions each) and award badges/points |
| Trail badges earned | Track Meadow/Mountain/Summit completion |
| Data | Purpose |
|---|---|
| Username & experience level | Match teachers with learners |
| Goal (Learn or Teach) | Complementary matching logic |
| Optional intro message | Shared with matched buddy to start conversation |
| Timezone estimate | Proximity matching preference |
Buddy pool entries are deleted when matched or after 30 days of inactivity.
| Data | Purpose |
|---|---|
| Certificate ID & verification URL | Generate a public shareable link to your Scholar Certification |
| Username, score, date | Display on the public verification page |
Certificate verification pages are publicly accessible by design — they prove your achievement.
| Data | Purpose |
|---|---|
| Vote (sats or bits) | Community denomination poll |
| Device fingerprint hash | Anti-cheat: prevent duplicate voting (hashed, not personally identifiable) |
| Data | Purpose |
|---|---|
| Selected region | Show region-appropriate exchange recommendations |
| Step progress | Remember where you left off in the guided flow |
No purchase data, exchange credentials, or financial information is collected or stored. Referral links redirect to third-party sites governed by their own privacy policies.
Template downloads are generated client-side as text files. No data is sent to our servers.
| Data | Purpose |
|---|---|
| Reporter & reported user IDs | Process abuse reports |
| Report reason | Categorize and prioritize reports |
| Timestamp | Track report timeline |
Timechain TV embeds content using standard YouTube IFrame embeds. When you use the video player, YouTube may collect data according to their own privacy policy. We do not transmit your identity to YouTube. Locally in your browser, we store your 'last station' and 'mute/autoplay' preferences so your experience is preserved between visits.
Third-party content & opinions. All videos shown on Timechain TV are publicly embeddable third-party uploads from YouTube. Bitcoin Education Archive does not own, host, verify, or endorse the content. Opinions, price predictions, investment theses, and statements expressed belong solely to the individual creators and speakers — not to us. Nothing on Timechain TV is financial, investment, legal, or tax advice. See our Terms for the full disclaimer.
Anonymous live-viewer presence. To show the live viewer counter on each channel, your browser writes a small presence record to our database every ~30 seconds containing only: (1) the channel id you are currently watching, and (2) a server timestamp. For signed-in users this record is keyed by your auth UID; for anonymous users it is keyed by a randomly-generated local id (stored in your browser's localStorage as tctv_viewerId). The record is deleted when you leave Timechain TV or close the tab, and automatically expires after ~65 seconds of inactivity. No IP, location, or identifying information is stored in the presence record.
Watch-time tracking. We count minutes watched on Timechain TV to power badges and the point reward system (10 points per 10 minutes). Anonymous users have watch time stored only in localStorage. Signed-in users have their cumulative watch time stored in their Firestore user document. You can clear this at any time via Settings → Reset Account.
| Data | Purpose |
|---|---|
| Theme preference | Dark/light mode |
| Language preference | Translation setting |
| Audio/sound settings | Sound effect preferences (site + Nacho) |
| Nacho interaction count | Friendship level calculation |
| Nacho questions asked | Question badge tracking |
| Nacho equipped accessory & colors | Closet/outfit selection and customization |
| Nacho chat history (Nacho Mode) | Conversation continuity within sessions |
| Nacho question analytics | Last 100 questions (local only, helps improve answers) |
| Nacho trivia progress | Which trivia questions you've answered |
| Blocked users (local copy) | Fast block checking without server round-trip |
| Referral code (pre-signup) | Stores referral link code before account creation |
| Pending signup data | Temporarily stores username/email during email verification |
| Visited channels | Checkmarks and exploration map (also synced to Firebase if signed in) |
| BTC price cache | Cached price for marketplace USD conversion |
| Liked tracks (Bitcoin Beats) | Remember which tracks you hearted |
| Chat message count | Track total messages for chat badges |
| Chat streak & last chat date | Daily chat streak tracking for rewards |
| DJ sets count | Track total DJ sessions for DJ badges |
| DJ songs broadcast count | Track songs broadcast for DJ badges |
| DJ tune-in count | Track how many DJ sets you've listened to |
| Nacho position (draggable) | Remember where you placed the Nacho mascot on screen |
| First Purchase step & region | Resume buying guide where you left off |
| Trail progress (local cache) | Fast load of trail status (also synced to Firebase) |
| NWC connection string | Stored in sessionStorage (cleared when tab closes) for Lightning wallet connection |
We do not collect your real name, physical location, browsing history outside the Site, or any financial information (other than a Lightning address if you enter the giveaway). IP addresses are only collected during sats faucet claims for multi-account abuse detection — they are not collected during normal browsing, sign-in, or any other activity.
When you create an account, a public profile is visible to other signed-in users. Your profile displays:
Your email, sign-in provider, and blocked list are never visible to other users.
Server-side data is stored in Google Firebase (Firestore), hosted in the United States. Firebase is operated by Google and subject to Google's enterprise security practices and certifications.
Client-side data is stored in your browser's localStorage and in the PWA's service worker cache. This data stays on your device and is never transmitted to us.
Direct messages and forum posts are stored in Firebase Firestore. Messages are not end-to-end encrypted. We may access message content when investigating abuse reports.
We use the following third-party services:
| Service | Purpose | Data Shared |
|---|---|---|
| Firebase Authentication | Account sign-in | Email, provider token |
| Firebase Firestore | Data storage | Account data, messages, posts, listings |
| Firebase Cloud Messaging | Push notifications (opt-in) | Device token |
| Google OAuth | Google sign-in | Google account email/name |
| Twitter/X OAuth | Twitter sign-in | Twitter account info |
| GitHub OAuth | GitHub sign-in | GitHub account email |
| Facebook OAuth | Facebook sign-in | Facebook account info |
| Nostr (NIP-07) | Nostr sign-in via browser extension | Public key, signed auth event |
| LNURL-auth | Lightning wallet sign-in | Linking key, signed challenge |
| QR Server API | Generate QR codes for Lightning auth | LNURL string (no user identity) |
| Cloudflare Workers AI | Nacho AI — question answering powered by Meta Llama 4 Scout (a large language model hosted by Cloudflare) | Question text only (no username, no user ID, no account data) |
| mempool.space API | Live BTC price, block height, fees | None (read-only public API) |
| GitHub Pages | Website hosting | Standard web server logs |
| CoinGecko API | Market data, price charts, dominance | None (read-only public API) |
| ColintalksCrypto (CBBI) | On-chain indicator data | None (read-only public API) |
| alternative.me | Fear & Greed Index | None (read-only public API) |
| Bitbo.io | ETF flow data | None (read-only public data) |
| RainbowChart.com | Rainbow chart formula reference | None (formula only, no API calls) |
| Firebase Cloud Functions | Secure Telegram bridge, server-side operations | Chat messages (username + text) |
| Telegram Bot API | Bridge Global Chat to Telegram group | Username and message text |
We do not use Google Analytics, Facebook Pixel, ad networks, or any tracking/analytics services.
We do not share, sell, rent, or monetize your data with anyone. Data visible to other users includes:
We take a minimal, privacy-first approach to browser storage. Here is an exact breakdown of what we store and why:
We set one first-party cookie under normal operation:
googtrans — set only if you use the Google Translate feature, solely to remember your selected language. It is a functional cookie with no tracking purpose. If you do not use translation, this cookie is never set.Firebase Authentication may set a short-lived __session cookie to manage your sign-in state. This is an HttpOnly, first-party session cookie. It contains no personal data beyond an opaque auth token and is cleared when you sign out or it expires.
We do not use:
Because we do not use non-essential cookies, you are not required to give cookie consent under GDPR/ePrivacy rules. There is no cookie banner because there is nothing to consent to beyond functional operation.
The majority of your in-app state is stored in your browser's localStorage — entirely on your device, never transmitted to us unless you create an account. Examples of what we store locally:
btc_anon_uid), pending username/email during sign-up, streak dataYou can clear all localStorage data at any time from your browser settings, which will reset app preferences and cached progress. If you have a signed-in account, your server-side profile (XP, badges, wallet balance, posts) is unaffected.
The app operates as a Progressive Web App (PWA). A service worker caches app assets (scripts, stylesheets, images) on your device for offline access and faster loading. This cache contains only static app files — no personal data. You can clear it via your browser's "Clear site data" or "Clear cache" function.
Nacho's AI answers are powered by Meta Llama 4 Scout, a large language model (LLM) hosted by Cloudflare Workers AI. Cloudflare processes questions on our behalf under their Privacy Policy. The Llama model is provided by Meta; see Meta's Llama 4 license. We do not use your questions to train AI models.
All user-generated content (Global Chat messages, forum posts, DMs, usernames, articles) is filtered client-side before submission. No content is sent to external moderation services. Filters include:
Filtering is performed entirely in your browser. No message content is sent to external moderation APIs or third-party services. Blocked messages are never stored in Firebase.
You can:
When you delete your account, all your data is permanently removed from our Firebase database, including messages, posts, listings, and reports. Local browser data must be cleared separately.
The Site is educational and suitable for all ages. We do not knowingly collect personal information from children under 13. The direct messaging feature is available only to registered users. If you are a parent and believe your child has provided personal information or been contacted inappropriately, please contact us immediately and we will take action.
We use industry-standard security measures including:
Account data is retained as long as your account exists. Direct messages are retained as long as both participants' accounts exist. Forum posts and marketplace listings are retained indefinitely unless deleted by the author or removed by administrators. If you delete your account, all associated data is permanently deleted from Firebase. Anonymous visit data (visitor ID and count) may be retained for aggregate statistics but contains no personally identifiable information.
| Data | Purpose |
|---|---|
| Withdrawal history (amounts, timestamps) | Track claim activity and enforce daily/lifetime limits |
| Truncated Lightning invoice (first 50 characters + "...") | Audit trail for payouts — we do NOT store full invoices |
| Daily claim tracking | Enforce 1-claim-per-24-hours cooldown and 200 sats/day cap |
| Lifetime total claimed | Enforce 15,000 sats lifetime cap per user |
| Device fingerprint hash | Anti-abuse: detect multi-accounting (hashed, not personally identifiable) |
| IP address (at claim time only) | Anti-abuse: detect multiple accounts claiming from the same network |
| Server-side daily points tracking | Enforce 500 pts/day cap per user — tracked in Firebase, not browser |
Sats claim data is stored in the following Firebase subcollections under your user document:
We may update this Privacy Policy from time to time. Changes will be reflected in the "Last updated" date above. Continued use of the Site after changes constitutes acceptance.
The Bitcoin Education Archive is owned and operated by 603BTC LLC. "Bitcoin Education Archive" is a trademark (™) of 603BTC LLC. All original Site content, design, code, and branding are © 2026 603BTC LLC. All rights reserved.
Questions about privacy? Email info.603btc@gmail.com.
Terms · DMCA · TCTV Terms
© 2026 603BTC LLC · Bitcoin Education Archive™ · bitcoineducation.quest