Ochrona prywatności
Legal from Day OneTę stronę piszemy przed tym, zanim pierwszy gracz naciśnie Rejestracja. To privacy receipt, nie mglisty tekst prawny. Zgodne z GDPR.
1 · Kto zarządza twoimi danymi
Administratorem danych w rozumieniu GDPR art. 4 ust. 7 jest zespół B2JK-Industry (hackathonowy zespół ETHSilesia 2026, Katowice, PL). Kontakt do spraw prawnych: e-mail w README repo. Publiczny kod źródłowy: github.com/B2JK-Industry/watt-city.
2 · Co dokładnie przechowujemy
Przechowujemy minimum — każde pole z konkretnym celem i terminem.
Nazwa użytkownika
<to, co wpisałeś>
Retention: dopóki nie usuniesz konta
Purpose: Liga śląska
Hasło
scrypt hash + sól (64 bajty)
Retention: dopóki nie usuniesz konta
Purpose: Zaloguj
Oryginalnego hasła nie przechowujemy i nie umiemy go odczytać.
Waty łącznie
wartości liczbowe per gra
Retention: dopóki nie usuniesz konta
Purpose: Liga śląska
Co dokładnie przechowujemy
liczba prób, best score, czas ostatniej gry
Retention: dopóki nie usuniesz konta
Purpose: Twój dom
Session cookie
HMAC-signed, HttpOnly, 30 dni
Retention: max 30 dni lub do wylogowania
Purpose: Zaloguj
Czego NIE przechowujemy: e-mail, telefon, prawdziwe imię, adres IP, lokalizacja, fingerprint analityczny, third-party cookies, tagi remarketingowe. Nie używamy Google Analytics, Meta Pixel, Hotjar ani ekwiwalentów.
3 · Gdzie to fizycznie leży
- Baza Redis: Upstash, UE (Frankfurt). Sorted sets dla leaderboardów, JSON dla kont i pojedynków.
- Warstwa aplikacyjna: Vercel Edge + Node runtime, regiony UE.
- Kod: GitHub, prywatne repo podczas hackathonu, publiczne po zakończeniu.
4 · Twoje prawa według GDPR
- Art. 15 — dostęp: cała twoja ścieżka danych jest widoczna w dashboardzie (Waty, gry, pojedynki). Nic ukrytego.
- Art. 16 — sprostowanie: nazwy na razie nie można zmienić, ale można usunąć konto i założyć nowe.
- Art. 17 — usunięcie („right to be forgotten"): jedno kliknięcie w dashboardzie → usuwa konto, wyniki i wszystkie wpisy z leaderboardów.
- Art. 20 — przenośność: otwarte API /api/me (GET) zwraca twoje dane w JSON.
- Art. 21 — sprzeciw: podstawą prawną przetwarzania jest twoja zgoda przy rejestracji. Cofnięcie zgody = usunięcie konta.
- Art. 22 — automatyczne decydowanie: nie stosujemy. Leaderboard jest deterministyczny, pojedynek ma seed i stałe reguły.
5 · AI i dane
Gdy uruchomimy „AI wyzwanie dnia" (w roadmapie):
- Claude będzie generować tylko zadanie gry (quiz, słowa, liczby). Nigdy nie widzi twojej nazwy, wyniku ani ID.
- Wyniki AI publikujemy z odznaką 🤖 AI — nigdy nie udajemy, że napisał to człowiek.
- Twoich odpowiedzi do modelu AI nie wysyłamy. Zostają w naszym Upstash.
- Jeśli AI się pomyli (halucynacja), zgłoś to przez GitHub issue — naprawimy i redeployujemy.
6 · Bezpieczeństwo
- Hasła: scrypt z losową 16-bajtową solą (Node.js crypto.scryptSync).
- Sessions: HMAC-SHA256 podpisany cookie, HttpOnly, Secure, SameSite=Lax, 30-dniowy maxAge.
- Wejścia API walidowane przez Zod (żadnego „anything goes").
- Incident response: jeśli znajdziesz podatność, napisz przez GitHub security advisory.
7 · Dzieci i młodzież
Platforma celuje w Gen Z (15–20 lat). Dla osób młodszych niż 16 (w PL próg GDPR dla zgody) zalecamy zgodę rodzica. Nie zbieramy żadnych danych osobowych pozwalających identyfikować dziecko poza grą.
8 · Hackathon disclaimer
Watt City powstała podczas ETHSilesia 2026 (17–19 kwietnia 2026) w Katowicach. To prototyp — porady finansowe w grach nie mają charakteru doradztwa inwestycyjnego w rozumieniu MiFID II. Treść gier jest do celów edukacyjnych i sprawdzona wobec publicznie dostępnych źródeł, ale nie zastępuje konsultacji z bankiem, doradcą lub KNF (Komisja Nadzoru Finansowego).
9 · Dane on-chain (opcjonalne)
Jeśli aktywujesz soulbound medale w /profile (wymaga zgody rodzica dla kont < 16 lat), ograniczony zestaw danych trafi na publiczny blockchain (Base, warstwa L2 Ethereum): adres twojego portfela, deterministyczny tokenId (hash nazwy użytkownika + id osiągnięcia) oraz link IPFS do metadanych medalu (nazwa osiągnięcia, ikona). Nie wysyłamy e-maila, imienia, ID sesji ani żadnych PII na blockchain. Medale są niezbywalne (soulbound). Cofnięcie zgody uruchamia `burn(tokenId)` dla każdego wcześniej zamintowanego medalu — on-chain link znika (event Transfer → 0x0 jest publiczny). Opt-in, domyślnie wyłączone. Szczegóły w dokumentacji `docs/web3/PLAN.md`.
10 · Twoje prawa — jak skorzystać
- Art. 20 (portability): /api/me/export — pobierz wszystkie dane jako JSON.
- Art. 17 (erasure): w ustawieniach → Usuń konto. 30-dniowy okres karencji: ponowny login anuluje usunięcie.
- DPO: dpo@watt-city.example — na pytania o dane osobowe.
- UODO: ul. Stawki 2, 00-193 Warszawa — organ nadzorczy dla skarg.