FoxmomoMusic Privacy Policy

Effective Date: 2026-09-04 Last Updated: 2026-09-04 Developer: FoxmomoStudio (operating brand: Foxmomo) Contact Email: [email protected]Official Website: https://foxmomo.comTerms of Service: https://foxmomo.com/terms

This Privacy Policy describes how FoxmomoMusic (the "App") collects, uses, stores, and protects your personal data. Please read this policy carefully before using the App. By using the App, you agree to the data processing practices described in this Privacy Policy.

This policy complies with the relevant requirements of the General Data Protection Regulation (GDPR, EU 2016/679) and the California Consumer Privacy Act (CCPA, Cal. Civ. Code §1798.100).


1. App Overview

FoxmomoMusic is a Flutter music player that connects to your own music servers (Navidrome / Subsonic / Jellyfin / Plex / Emby / Koel / SMB / WebDAV / cloud drives, as well as cloud storage such as Google Drive / OneDrive / Dropbox). The App is a standalone application and does not store your music data on developer servers. All music files you access through the App reside on your own servers or local device; the developer cannot access them.

The developer's servers store only the minimum data necessary for license activation and in-app purchase verification. Except for sending verification/notification emails (via Resend), the App integrates no advertising or third-party analytics SDKs and does not enable Firebase.


2. Data Collection Inventory

2.1 Data Stored on Developer Servers

The following data is stored on developer servers (Supabase cloud service, region us-west-1, West US, Oregon, United States):

Data CategorySpecific FieldsSourcePurpose
IAP purchase credentialspurchase_token, product_id, platform (google/apple), bound_email (optional), verified status, verification_raw (raw verification API response), activated_at, expires_at, refunded_atSubmitted by the client after an in-app purchase is completedServer-side verification of purchase token authenticity, fraud prevention, cross-device activation status queries, and refund tracking
Pre-generated activation code bindingcode, bound_email, platforms, activated_at, is_active in the promo_codes tableWritten when a user activates with an activation codeBinding activation codes to emails, preventing code abuse by multiple users, platform permission checks
Activation logsemail, platform, device_id, activated_at, promo_code in the activation_logs tableAutomatically recorded when a user activatesRate limiting (5 activations per email per month), audit trail, anomalous behavior detection
Email verification codesemail, code, expires_at, used in the email_verification_codes tableGenerated when a user requests an activation codeOne-time email verification (10-minute TTL, marked as used after use)
Desktop pairing recordsdevice_fingerprint, session_id, activated_at, expires_at in the desktop_activations tableRecorded when the desktop app pairs via QR codeDesktop activation validity checks, 3-month validity management, monthly renewal limits (3 renewals per device)

Note: The device_fingerprint in the desktop_activations table is not associated with an email address, and the activated_by_email field is reserved (currently null) and does not constitute a personal identity association.

2.2 Data Stored Locally (Not Uploaded to Developer Servers)

The following data is stored locally on your device and is never uploaded to developer servers:

Data CategoryStorage LocationPurpose
Device IDSharedPreferencesdevice_id identifier used for key-based activation
Device fingerprintSharedPreferencesUnique device identifier used for desktop pairing
IAP activation statusFlutterSecureStorageLocally recorded purchase activation status (encrypted storage)
Server connection settingsLocal encrypted databaseAddresses and credentials for SMB/WebDAV/Subsonic and other servers
Playback historyLocal databaseLocal playback records
Favorites and playlistsLocal databaseLocal favorites and playlists
App settingsSharedPreferencesApp preference configuration

3. Data Use

3.1 IAP Purchase Credentials

  • Purpose: Server-side verification of purchase token authenticity (via the Google Play Developer API / Apple App Store Server API); prevention of token forgery and cross-device abuse; support for refund status tracking and auditing
  • Legal basis: Contract performance (GDPR Art. 6(1)(b)) — completing the in-app purchase verification process for user purchases

3.2 Pre-generated Activation Code Binding

  • Purpose: Binding activation codes to user email addresses to prevent code sharing and abuse; verifying platform permissions (android/ios/windows/macos); auditing activation code usage
  • Legal basis: Contract performance (GDPR Art. 6(1)(b)) — completing the license activation service

3.3 Activation Logs

  • Purpose: Rate limiting (a maximum of 5 activations per email address per month); preventing activation code abuse; audit trail
  • Legal basis: Legitimate interests (GDPR Art. 6(1)(f)) — fraud and abuse prevention, service security

3.4 Email Verification Codes

  • Purpose: Email identity verification during user activation; valid for 10 minutes and marked as used after use
  • Legal basis: Contract performance (GDPR Art. 6(1)(b)) — completing the identity verification step of the activation process

3.5 Desktop Pairing Records

  • Purpose: Desktop activation validity checks; 3-month validity management; monthly renewal limits (3 renewals per device)
  • Legal basis: Contract performance (GDPR Art. 6(1)(b)) — completing desktop license activation

4. Data Storage Location

4.1 Developer Servers

  • Provider: Supabase (https://supabase.com)
  • Region: us-west-1 (West US, Oregon, United States)
  • Data scope: Only the data listed in Section 2.1

4.2 Your Local Device

  • All data listed in Section 2.2 is stored locally on the user's device and never leaves the device

5. Data Retention

Data CategoryRetention PeriodNotes
IAP purchase credentials (iap_purchases)Retained permanentlyFor purchase verification audits, refund tracking, and prevention of token reuse
Pre-generated activation codes (promo_codes)Retained permanentlyActivation codes are business credentials that must be retained permanently for audit; bound_email is unbound upon a user deletion request (see Section 7)
Activation logs (activation_logs)Retained permanentlyFor audit trail and anomalous behavior detection; all records are deleted upon a user request (see Section 7)
Email verification codes (email_verification_codes)10 minutesRecords are retained after expiry but no longer valid; deleted immediately upon a user request
Desktop pairing sessions (desktop_pairing_sessions)5 minutesPairing session TTL; invalidated after expiry
Desktop activation records (desktop_activations)3 monthsActivation is valid for 3 months; re-pairing is required after expiry

6. Third-Party Services

The App uses only the following third-party services to process data. Each provider is an independent data controller/processor whose data processing is governed by its own privacy policy:

ProviderPurposeData ProcessedPrivacy Policy Link
SupabaseBackend database and Edge FunctionsAll server-side data listed in Section 2.1https://supabase.com/privacy
Google Play BillingAndroid in-app purchasesPurchase tokens, order informationhttps://policies.google.com/privacy
Apple StoreKitiOS in-app purchasesPurchase tokens, order informationhttps://www.apple.com/legal/privacy/
ResendEmail delivery serviceEmail addresses, verification code contenthttps://resend.com/legal/privacy-policy

Notes:

  • Purchase tokens from Google Play Billing and Apple StoreKit are processed directly by the platforms; the App only stores the verified purchase_token for server-side secondary verification.
  • The App integrates no advertising SDKs, does not enable Firebase, and integrates no analytics or crash-reporting SDKs; therefore it collects no advertising IDs and shares no data with advertising/analytics third parties.
  • Your email address is processed by Resend when verification/notification emails are sent (a data sharing activity; see Section 6 and the Google Play Data Safety form disclosure).

7. Your Rights

Under the GDPR (applicable to users in the EU/EEA) and the CCPA (applicable to California residents), you have the following rights:

7.1 Right of Access

  • What: You have the right to request a copy of the personal data stored on developer servers
  • How: Send an email to [email protected] with the subject "Data Access Request" and your registered email address
  • Response time: Reply within 30 days of receiving the request

7.2 Right to Erasure (Right to Delete)

  • What: You have the right to request deletion of all personal data associated with your email address
  • How: Send an email to [email protected] with the subject "Data Deletion Request" and your registered email address
  • Process: After verifying your identity, the developer invokes the delete-user-data Edge Function to perform the deletion (see the Data Deletion Process document)
  • Deletion scope:
    • promo_codes.bound_email (unbound; the code itself is retained for audit)
    • activation_logs (all records deleted)
    • email_verification_codes (all records deleted)
    • iap_purchases.bound_email (unbound or records deleted)
  • Data not deleted:
    • Anonymized/aggregated statistics
    • The activation code code itself (contains no email address and does not constitute personal identity information)
  • Response time: Completed within 7 business days

7.3 Right to Rectification

  • What: You have the right to request correction of inaccurate personal data
  • How: Contact the developer via [email protected], specifying the data to be corrected and the correct content
  • Response time: Processed within 30 days of receiving the request

7.4 Other Rights (for GDPR data subjects)

  • Right to Restrict Processing
  • Right to Data Portability
  • Right to Object
  • Right to object to automated decision-making and profiling

7.5 Other Rights (for CCPA data subjects)

  • Right to know: To learn about the collection, use, and sharing of personal data
  • Right to opt out of sale: The App does not sell personal data
  • Right to non-discrimination: Exercising privacy rights will not result in discrimination

Where the App processes certain data based on consent, you have the right to withdraw your consent at any time. Withdrawal of consent does not affect the lawfulness of processing carried out before the withdrawal.

7.7 Right to Lodge a Complaint

If you believe the developer's processing of your personal data violates applicable law, you have the right to lodge a complaint with your local data protection supervisory authority.


8. Data Security Measures

The developer takes the following technical and organizational measures to protect your personal data:

8.1 Transport Security

  • All communication between clients and servers is encrypted via HTTPS/TLS
  • Edge Function calls are authenticated via X-API-Secret / X-Admin-Secret

8.2 Storage Security

  • Supabase Row Level Security (RLS): All data tables have RLS enabled; direct client reads/writes are prohibited; all operations are performed through Edge Functions using the service_role_key
  • Local encrypted storage: IAP activation status is stored encrypted using FlutterSecureStorage (iOS Keychain / Android Keystore)
  • Local database encryption: Server connection settings are stored in a local encrypted database
  • Hashed email verification codes: Email verification codes are stored only as SHA-256(code‖salt) hashes; no plaintext is stored

8.3 Access Control

  • Only the developer holds the service_role_key and ADMIN_SECRET and can perform administrative operations
  • The API_SECRET embedded in the App is used only for limited client operations (such as confirming desktop pairing) and cannot perform deletion or administrative operations

8.4 Auditing and Monitoring

  • Activation logs and IAP verification records are retained permanently for post-hoc auditing and anomaly detection
  • Email verification codes are one-time use and marked used=true after use

9. Children's Privacy

The App is not directed at children under 13 (COPPA) or under 16 (GDPR) and does not knowingly collect personal information from such children. If you are a parent or guardian and believe your child has provided us with personal information, please contact us at [email protected] and we will promptly delete the relevant information.


10. International Data Transfers

Your data is stored on Supabase cloud services in the us-west-1 region (West US, Oregon), located in the United States. The developer will take appropriate measures (such as Standard Contractual Clauses, SCCs) to ensure cross-border data transfers comply with the requirements of the GDPR and other applicable laws.

In addition, the operator of the App is located in China. If you are located within China, this policy also complies with the Personal Information Protection Law of the People's Republic of China (PIPL). The interpretation and dispute resolution of this Privacy Policy are governed by the governing law stipulated in the Terms of Service (https://foxmomo.com/terms).


11. Changes to This Policy

The developer reserves the right to update this Privacy Policy at any time. When the policy changes:

  • Material changes (e.g., new data collection categories or changed data uses): users will be notified prominently via in-app notices or at https://foxmomo.com
  • Minor changes: this policy is updated directly, indicated by the "Last Updated" date
  • Continued use of the App constitutes your agreement to the updated Privacy Policy

12. Contact Us

If you have any questions, suggestions, or wish to exercise the rights described above regarding this Privacy Policy, please contact the developer:

The developer will respond to your request as soon as possible and handle it in accordance with applicable law.


Processing ActivityLegal BasisArticle
IAP purchase verificationContract performanceArt. 6(1)(b)
Activation code binding and verificationContract performanceArt. 6(1)(b)
Sending email verification codesContract performanceArt. 6(1)(b)
Activation log recordingContract performanceArt. 6(1)(b)
Rate limiting and abuse prevention for activation logsLegitimate interestsArt. 6(1)(f)
Desktop pairing and activationContract performanceArt. 6(1)(b)

This Privacy Policy was last updated on 2026-09-04.