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 Category | Specific Fields | Source | Purpose |
|---|---|---|---|
| IAP purchase credentials | purchase_token, product_id, platform (google/apple), bound_email (optional), verified status, verification_raw (raw verification API response), activated_at, expires_at, refunded_at | Submitted by the client after an in-app purchase is completed | Server-side verification of purchase token authenticity, fraud prevention, cross-device activation status queries, and refund tracking |
| Pre-generated activation code binding | code, bound_email, platforms, activated_at, is_active in the promo_codes table | Written when a user activates with an activation code | Binding activation codes to emails, preventing code abuse by multiple users, platform permission checks |
| Activation logs | email, platform, device_id, activated_at, promo_code in the activation_logs table | Automatically recorded when a user activates | Rate limiting (5 activations per email per month), audit trail, anomalous behavior detection |
| Email verification codes | email, code, expires_at, used in the email_verification_codes table | Generated when a user requests an activation code | One-time email verification (10-minute TTL, marked as used after use) |
| Desktop pairing records | device_fingerprint, session_id, activated_at, expires_at in the desktop_activations table | Recorded when the desktop app pairs via QR code | Desktop activation validity checks, 3-month validity management, monthly renewal limits (3 renewals per device) |
Note: The
device_fingerprintin thedesktop_activationstable is not associated with an email address, and theactivated_by_emailfield 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 Category | Storage Location | Purpose |
|---|---|---|
| Device ID | SharedPreferences | device_id identifier used for key-based activation |
| Device fingerprint | SharedPreferences | Unique device identifier used for desktop pairing |
| IAP activation status | FlutterSecureStorage | Locally recorded purchase activation status (encrypted storage) |
| Server connection settings | Local encrypted database | Addresses and credentials for SMB/WebDAV/Subsonic and other servers |
| Playback history | Local database | Local playback records |
| Favorites and playlists | Local database | Local favorites and playlists |
| App settings | SharedPreferences | App 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 Category | Retention Period | Notes |
|---|---|---|
IAP purchase credentials (iap_purchases) | Retained permanently | For purchase verification audits, refund tracking, and prevention of token reuse |
Pre-generated activation codes (promo_codes) | Retained permanently | Activation 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 permanently | For audit trail and anomalous behavior detection; all records are deleted upon a user request (see Section 7) |
Email verification codes (email_verification_codes) | 10 minutes | Records are retained after expiry but no longer valid; deleted immediately upon a user request |
Desktop pairing sessions (desktop_pairing_sessions) | 5 minutes | Pairing session TTL; invalidated after expiry |
Desktop activation records (desktop_activations) | 3 months | Activation 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:
| Provider | Purpose | Data Processed | Privacy Policy Link |
|---|---|---|---|
| Supabase | Backend database and Edge Functions | All server-side data listed in Section 2.1 | https://supabase.com/privacy |
| Google Play Billing | Android in-app purchases | Purchase tokens, order information | https://policies.google.com/privacy |
| Apple StoreKit | iOS in-app purchases | Purchase tokens, order information | https://www.apple.com/legal/privacy/ |
| Resend | Email delivery service | Email addresses, verification code content | https://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_tokenfor 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-dataEdge Function to perform the deletion (see the Data Deletion Process document) - Deletion scope:
promo_codes.bound_email(unbound; thecodeitself 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
codeitself (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
7.6 Withdrawal of Consent
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.
- EU/EEA: Directory of EDPB member authorities
- California: California Attorney General — Privacy Enforcement
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_keyandADMIN_SECRETand can perform administrative operations - The
API_SECRETembedded 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=trueafter 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:
- Email: [email protected]
- Official Website: https://foxmomo.com
- Terms of Service: https://foxmomo.com/terms
The developer will respond to your request as soon as possible and handle it in accordance with applicable law.
13. Summary of Legal Bases (GDPR)
| Processing Activity | Legal Basis | Article |
|---|---|---|
| IAP purchase verification | Contract performance | Art. 6(1)(b) |
| Activation code binding and verification | Contract performance | Art. 6(1)(b) |
| Sending email verification codes | Contract performance | Art. 6(1)(b) |
| Activation log recording | Contract performance | Art. 6(1)(b) |
| Rate limiting and abuse prevention for activation logs | Legitimate interests | Art. 6(1)(f) |
| Desktop pairing and activation | Contract performance | Art. 6(1)(b) |
This Privacy Policy was last updated on 2026-09-04.