CheckMole — Privacy Policy
Effective date: 23 April 2026 · Last updated: 23 April 2026
This document covers the CheckMole mobile app. Русская версия
1. Who we are
CheckMole (the "Service", "App") is an educational self-check mobile application for monitoring skin moles using the ABCDE method, offered by:
- Controller: Uladzislau Yasinski, an individual developer based in Poland
- Address: ul. Michała Kleofasa Ogińskiego 11/9, 03-318 Warsaw, Poland
- Contact for privacy matters: support@checkmole.com
This Privacy Policy explains what personal data we collect, why we collect it, how we use and share it, and the rights you have over your data. It applies to the CheckMole mobile application and its related web surfaces.
We act as the data controller for the personal data described below.
2. Medical disclaimer (read first)
CheckMole is an educational and informational tool for self-monitoring, not a medical device within the meaning of EU Regulation 2017/745 (MDR) or the U.S. FD&C Act. CheckMole does not provide a medical diagnosis, does not detect or diagnose cancer or any other disease, and is not a substitute for a consultation with a qualified medical professional.
AI-generated analysis (including ABCDE scores, risk percentages, and text summaries) reflects a heuristic estimation and must not be used as the sole basis for medical decisions. If you have concerns about your skin, contact a dermatologist or another qualified healthcare provider.
3. What personal data we collect
3.1 Data you provide
| Category | Examples | When |
|---|---|---|
| Mole photographs | Images you capture through the camera or pick from your photo library | Each scan |
| Body location | The body zone you tag a scan with (e.g., "right shoulder") | Each scan |
| Account identifiers | Email address, display name, avatar (if you sign in) | At sign-up / profile edit |
| Skin profile | Fitzpatrick phototype (I-VI), city of residence (name and approximate coordinates) | Onboarding / UV setup |
| Support correspondence | Content of any email you send us | On contact |
3.2 Data generated by the Service
| Category | Examples | How |
|---|---|---|
| AI analysis results | ABCDE labels, risk percentage, textual summary, evolution notes | Generated server-side by our Edge function using Google Gemini |
| Scan history | Timestamps, thumbnails, delta between scans, next check-up schedule | Stored with your account if you are signed in |
| Subscription status | Active / trial / expired, plan tier (weekly / annual), start and expiry dates | Received from Apple App Store / Google Play via RevenueCat |
| Behavioral logs | Scan counts (including "unusable" frames for fair-use limits), paywall views, feature touches, session length | Captured only in anonymized analytics |
3.3 Data collected automatically
| Category | Examples | Purpose |
|---|---|---|
| Device identifiers | Anonymous install UUID (generated locally), Firebase Cloud Messaging (FCM) push token, device model, OS version, app version, locale, time zone | Personalisation of push notifications, crash diagnostics, analytics |
| Scan request log | For each photo analysis request: the anonymous install UUID, a one-way salted hash of the IP address (the IP address itself is not stored), the time, and whether the install has an active subscription. No photo or analysis content. Deleted after 35 days | Enforcing scan limits and protecting the analysis service from abuse |
| Approximate location | City-level coordinates (latitude/longitude rounded) for the UV Index card | UV forecasting; you may set the city manually without GPS |
| Crash and performance logs | Stack traces, non-fatal errors, breadcrumbs without PII — no email, name, photos, coordinates, or AI text are included | Stability monitoring |
We do not intentionally collect special categories of personal data (as defined in GDPR Art. 9) beyond what you choose to submit through the Service. Photographs of skin uploaded by you for analysis are treated as sensitive data and handled with corresponding care (Section 8).
4. Legal bases for processing (EEA, UK, Switzerland)
Under GDPR Art. 6, we rely on the following legal bases:
| Processing activity | Legal basis |
|---|---|
| Performing scan analysis; storing scan history; delivering paid features | Contract — Art. 6(1)(b) |
| Sending push notifications, showing in-app analytics events | Consent — Art. 6(1)(a) — you grant consent via OS push prompt and can withdraw at any time in OS settings |
| Detecting abuse, enforcing free-tier limits, preventing fraud | Legitimate interest — Art. 6(1)(f) — balanced against your rights; no automated decisions with legal effects |
| Compliance with tax, accounting and legal obligations (e.g., Polish VAT on digital services via Apple/Google) | Legal obligation — Art. 6(1)(c) |
| Processing skin photographs and AI-derived health-related inferences | Explicit consent — Art. 9(2)(a) — captured during onboarding and each scan acknowledgment |
You can withdraw consent at any time; withdrawal does not affect the lawfulness of prior processing.
5. How we use your data
- Deliver the core service — analyze your scans, store them in your account, show history, compute ABCDE deltas, compare scans over time, recommend a check-up date.
- Personalize UV forecasting — compute sunburn times and SPF advice for your city and skin phototype.
- Paywall and subscriptions — verify your subscription status through Apple/Google, surface upsells, honor the free tier and trial.
- Notifications — deliver reminders you opted into (check-ups, SPF), one-off re-engagement pushes, trial expiration alerts.
- Quality and safety — monitor crashes, detect abuse, prevent malicious scan attempts.
- Support — answer your emails to support@checkmole.com.
- Legal compliance — retain transaction metadata for tax purposes.
We do not use your data for:
- Sale to third parties (see Section 12)
- Advertising based on your skin photos or health-related inferences
- Automated decision-making with legal or similarly significant effects
6. Sub-processors and data sharing
We engage the following sub-processors to operate the Service. Each is bound by a Data Processing Addendum (DPA) and, for non-EU entities, by Standard Contractual Clauses (SCCs).
| Sub-processor | Purpose | Data touched | Jurisdiction | Link |
|---|---|---|---|---|
| Supabase, Inc. | Authentication, Postgres database, object storage (avatars), Edge Functions | Email, account profile, snapshot JSON (moles, scans, preview thumbnails) | USA (Delaware) | supabase.com/privacy |
| Google LLC (via our Edge function) | Gemini AI analysis of uploaded mole photos | Photo bytes, basic skin-profile answers (such as skin type), body location code, locale; transient processing only — Google does not retain data under the Gemini API data-use policy for paid API | USA | cloud.google.com/terms/data-processing-addendum |
| Google Firebase | Cloud Messaging (push), Crashlytics (stability) | FCM token, device model/OS, anonymous install UUID, crash traces | USA | firebase.google.com/support/privacy |
| Apple Inc. | In-App Purchase processing | Transaction receipts, subscription status | USA | apple.com/legal/privacy |
| Google LLC (Play Billing) | In-App Purchase processing on Android | Purchase tokens, subscription status | USA | policies.google.com/privacy |
| RevenueCat, Inc. | Subscription state synchronization | Anonymous app user ID, subscription events | USA | revenuecat.com/privacy |
| PostHog, Inc. | Product analytics (anonymized events) | Install UUID, event names, screen transitions | USA (EU hosting available) | posthog.com/privacy |
| Amplitude, Inc. | Product analytics (anonymized events) | Install UUID, event names, feature usage | USA | amplitude.com/privacy |
| Open-Meteo | UV forecast data | Latitude, longitude (rounded) | Germany (EU) | open-meteo.com/en/terms |
| Nominatim / OpenStreetMap Foundation | City-name to coordinates lookup | Search string (city name) | UK (EU adequacy) | osmfoundation.org/wiki/Privacy_Policy |
We do not share your personal data with any party other than these sub-processors and, where legally required, with public authorities responding to valid legal requests.
We never sell your personal data.
7. International transfers
Most of our sub-processors are located in the United States. Where personal data is transferred outside the European Economic Area (EEA), we rely on:
- Standard Contractual Clauses (SCCs) adopted by the European Commission (Commission Implementing Decision (EU) 2021/914)
- Supplementary safeguards where required by the sub-processor (encryption in transit and at rest, strict access controls, DPAs)
You can request a copy of the applicable safeguards by emailing support@checkmole.com.
8. Data retention
| Data category | Retention |
|---|---|
| Account (email, display name, avatar) | Until you delete your account |
| Scan history and analysis (server-side snapshot) | Until you delete the scan or your account |
| Free-tier counters (including "unusable-scan" caps) | 12 months from last relevant event, to enforce fair-use |
| Crash logs (Firebase Crashlytics) | 90 days |
| Analytics events (PostHog, Amplitude) | 24 months, then anonymized or deleted |
| Payment transaction metadata | 5 years, as required by Polish tax law |
| Support correspondence | 2 years from closure of the conversation |
When you delete your account, we delete or anonymize your personal data within 30 days, except for data we are legally obliged to retain (e.g., payment records for tax audits).
9. Your rights in the European Economic Area, United Kingdom, and Switzerland
Under GDPR (and equivalent UK / Swiss laws), you have the right to:
- Access — obtain a copy of your personal data
- Rectification — correct inaccurate data
- Erasure — have your data deleted ("right to be forgotten")
- Restriction — limit how we process your data
- Data portability — receive your data in a structured, machine-readable format
- Object — to processing based on legitimate interest
- Withdraw consent — at any time, without affecting the lawfulness of prior processing
- Not be subject to automated decision-making — including profiling with legal effects (we do not perform such)
To exercise any of these rights, email support@checkmole.com. We will respond within 30 days (Art. 12(3)). We may ask you to verify your identity to prevent unauthorized access.
You also have the right to lodge a complaint with your local supervisory authority. In Poland, this is the President of the Personal Data Protection Office (UODO), ul. Stawki 2, 00-193 Warsaw, https://uodo.gov.pl.
10. California privacy rights (CCPA / CPRA)
California residents have the right, under the California Consumer Privacy Act (CCPA) as amended by the California Privacy Rights Act (CPRA), to:
- Know what personal information we collect, use, disclose, and share
- Delete your personal information (subject to legal exceptions)
- Correct inaccurate personal information
- Limit use of sensitive personal information to what is necessary to deliver the Service
- Not receive discriminatory treatment for exercising these rights
Categories of personal information collected (CCPA §1798.140): identifiers (email, install UUID, FCM token); customer records (subscription status); internet activity (analytics events); geolocation (city-level); sensory data (photographs of skin); inferences (risk score, ABCDE labels).
Sale or share of personal information: CheckMole does not sell or share personal information as defined by CCPA/CPRA. Accordingly, we do not need to offer a "Do Not Sell or Share My Personal Information" link.
Sources: directly from you; automatically as you use the Service; from our sub-processors (Apple, Google) for subscription verification.
To exercise California rights, email support@checkmole.com. We will respond within 45 days.
11. Other U.S. state privacy laws
Residents of Virginia (VCDPA), Colorado (CPA), Connecticut (CTDPA), Utah (UCPA), and Texas (TDPSA) have rights similar to those described above (access, deletion, correction, opt-out of targeted advertising — N/A, we do not conduct targeted advertising). To exercise these rights, email support@checkmole.com.
12. Children
The Service is not directed at children under the age of 13. We do not knowingly collect personal data from children under 13 (or under 16 where the GDPR-K local age applies, e.g., Germany, Netherlands). If you believe a child has provided us with personal information, contact support@checkmole.com and we will delete the data promptly.
13. Security
- All traffic to our servers uses HTTPS/TLS encryption.
- Supabase access is protected by Row-Level Security (RLS) — only authenticated users can read their own rows.
- Session tokens on iOS are stored in the Keychain; on Android in the encrypted equivalent provided by Android SDK.
- We apply a strict "no PII in logs" policy: crash reports and analytics events never contain email addresses, names, photographs, precise coordinates, or AI text.
- Access to production infrastructure is limited to Uladzislau Yasinski and strictly audited.
No security measure is absolute. If you believe your account has been compromised, contact support@checkmole.com immediately.
14. Changes to this policy
We may update this Privacy Policy from time to time to reflect changes in the Service, applicable law, or our practices. When we make material changes, we will:
- Update the "Last updated" date at the top
- Notify you in-app or by email (for signed-in users) at least 14 days before the change takes effect for existing users, where feasible
Your continued use of the Service after the effective date of the updated policy constitutes acceptance of the changes.
15. Contact us
For any question related to this Privacy Policy or to exercise your rights:
Email: support@checkmole.com Postal address: Uladzislau Yasinski, ul. Michała Kleofasa Ogińskiego 11/9, 03-318 Warsaw, Poland
This document is available in Russian.