Privacy Policy — Pay To Unlock
Last updated: May 1, 2026
Loud Unicorn LLC ("Loud Unicorn," "we," "us," or "our") built Pay To Unlock. This policy explains exactly what data Pay To Unlock collects, why, and how it is handled.
1. WHO WE ARE
Pay To Unlock is published by Loud Unicorn LLC, an Arizona limited liability company.
Contact: support@loudunicorn.com
Website: https://didyu.app
2. THE SHORT VERSION
Pay To Unlock stores everything locally on your device. We operate no backend servers, run no analytics, and collect no personal data. The only data that leaves your device is your StoreKit purchase receipt (verified by Apple, not by us) and, if you choose to Sign in with Apple, an anonymous user token issued by Apple. We never see your name, email address, which apps you block, how much you spend, or anything else about your usage.
3. DATA WE PROCESS AND WHY
All data listed below is stored exclusively in an iOS App Group UserDefaults container (group.com.loudunicorn.buyyourtime) on your device. None of it is ever transmitted to Loud Unicorn servers.
3a. App Configuration (required for core functionality)
- Blocked app selection — a JSON-encoded FamilyActivitySelection token set representing the apps you chose to block. Stored on-device; we cannot see which apps you selected. Used to apply and lift the block shield.
- Unlock expiry timestamp — the date/time when your current paid or free unlock window expires. Stored so DeviceActivityMonitor can re-apply blocking at the correct time.
- Unlock duration seconds — the total length of your current or most recent unlock window. Used to render the progress ring on the home screen.
- Block schedule settings (blockScheduleEnabled, blockWindowStart, blockWindowEnd) — your per-app block schedule preferences. Stored locally; used to apply time-windowed blocking.
- Per-app daily limit settings (dailyLimitEnabled, dailyLimitMinutes, appItemSettings) — daily time limits per blocked app. Stored locally; used to schedule DeviceActivityEvent thresholds.
- Daily limit state (dailyLimitHitKeys, dailyLimitEventMap, windowActivityNames) — runtime state tracking which apps have hit their daily limit today. Cleared at midnight by iOS.
3b. Free Unlock State
- Free unlock timestamp — the date you last used your weekly free 1-hour unlock. Stored locally to enforce the 7-day cooldown. Displayed as a countdown in Settings.
3c. Purchase and Resistance History (local stats only)
- Spending events — each time you make a purchase or use the free unlock, a record is stored locally containing the date, purchase amount in cents (0 for free unlock), and hours purchased. Used only to display your personal Stats screen. Never transmitted.
- Resistance events — each time you dismiss the purchase sheet without buying, a local record is created containing the date and the cost of the cheapest option you declined. Used to calculate the "money saved" stat. Never transmitted.
3d. Onboarding State
- onboardingCompleted — a boolean flag indicating whether you have completed the onboarding flow. Stored locally; controls whether onboarding is shown on next launch.
3e. Sign in with Apple (optional)
If you choose to Sign in with Apple, we store:
- Apple user identifier — an opaque, app-scoped random string generated by Apple. This is not your email address, Apple ID, or any personally identifiable token. It is used only to identify your session within the app and is never sent to our servers.
- Display name — if Apple provides your name on first sign-in, it is stored locally for display in the Account section. Apple provides this name only once; we persist it locally so it remains visible after subsequent launches.
Signing in with Apple is entirely optional. The app's core blocking and purchase features work without an account. Sign-in only enables the optional Delete Account flow.
3f. Cross-Process Communication (extension flags)
- pendingPurchaseFromShield, pendingFreeUnlockFromShield, pendingQuickBuy1Hour — boolean flags written by extension targets (ShieldActionExtension) and read once by the main app to trigger purchase or unlock flows. Self-clearing; not persisted beyond a single app lifecycle.
3g. Notifications
Pay To Unlock schedules local notifications entirely on-device using UNUserNotificationCenter:
- Unlock warning (5 minutes before expiry)
- Free hour recharged (7 days after last free unlock)
- Weekly recap (every Sunday at 7 PM; your resistance count and estimated money kept)
- Re-engagement (3 days after the app is backgrounded)
- Discount offer (24 hours after 3+ resistance events; rate-limited to once per 30 days)
Notification content is generated on-device. No notification data is sent to our servers. We do not use push notifications or APNs.
4. WHAT WE DO NOT COLLECT
- Name, email address, phone number, or any other contact information
- Location data (GPS, IP-based, or otherwise)
- Device identifiers (IDFA, IDFV) — we do not use any advertising or analytics SDKs
- App usage patterns, screen views, or session data on our servers
- Which apps you choose to block (invisible to us)
- Crash reports — we do not integrate any crash reporting service
- Analytics — no Firebase, Amplitude, Mixpanel, Crashlytics, or any third-party SDK
- Contacts, photos, camera, or microphone — the app does not request these permissions
- Health data
- Browsing history
5. THIRD-PARTY SERVICES
Pay To Unlock integrates only Apple first-party frameworks. We do not integrate any third-party SDKs, analytics libraries, advertising networks, or crash reporters.
Apple StoreKit 2
Used for consumable in-app purchases (1-hour/$1.99, 3-hour/$4.99, 4-hour/$6.99, 8-hour/$9.99). Apple processes all payment information. Loud Unicorn receives only a StoreKit transaction object from Apple's servers to verify the purchase succeeded. We never see your payment card, billing address, or Apple ID email. Apple's privacy policy: https://www.apple.com/privacy/
Apple FamilyControls / Screen Time API
Used to display the system app picker and block selected apps. FamilyControls requires explicit user authorization. The app token list stays on your device; we never receive or store it. Apple's privacy policy applies.
Apple ManagedSettings
Used to apply and lift app shields in response to purchase events and schedule expiry. Operates locally.
Apple DeviceActivityMonitor
Used to detect when your unlock window expires and automatically re-apply blocking, and to detect when per-app daily limits are exceeded. Operates locally.
Apple Sign in with Apple
Optional sign-in mechanism. Apple's privacy policy governs how Apple handles authentication. We receive only an opaque user identifier and, on first sign-in, your name if you chose to share it. Apple's privacy policy: https://www.apple.com/privacy/
Apple UNUserNotificationCenter
Used to schedule all local notifications. Notifications are generated and displayed entirely on-device.
6. CHILDREN'S PRIVACY
Pay To Unlock is not directed at children under 13. We do not knowingly collect personal information from anyone under 13. If you believe a child under 13 has used the app without parental consent, contact us at support@loudunicorn.com and we will take appropriate steps.
Users aged 13–17 must have permission from a parent or legal guardian to use the app and to make in-app purchases.
7. DATA STORAGE, RETENTION, AND DELETION
All data is stored locally on your device in an iOS App Group UserDefaults container. There is no cloud sync, no CloudKit, no server database, and no account system (unless you optionally sign in with Apple).
Retention: Data persists until you uninstall the app or manually clear it via iOS Settings > General > iPhone Storage > Pay To Unlock > Delete App.
Deletion: Uninstalling Pay To Unlock permanently deletes all locally stored data. Because we operate no backend, there is no server-side account or dataset to request deletion of. If you signed in with Apple, the opaque user identifier stored locally is deleted on uninstall. Apple retains its own authentication records per Apple's privacy policy.
To clear the free unlock cooldown or spending history without uninstalling, use iOS Settings > General > iPhone Storage > Pay To Unlock > Offload App (then reinstall).
8. SECURITY
Data is stored in UserDefaults protected by iOS's standard sandbox and data protection. We do not transmit data over the network (StoreKit receipts are Apple-to-Apple). Your data's security is governed by your device's iOS security and your device passcode/Face ID.
Pay To Unlock is a good-faith habit tool, not a tamper-proof enforcement system. A jailbroken device could theoretically modify locally stored values (e.g., the unlock expiry timestamp). We make no warranty that the blocking mechanism cannot be circumvented on a compromised device.
9. CHANGES TO THIS POLICY
We may update this Privacy Policy periodically. Material changes will be communicated via an in-app notice on the next app launch after the change. The "Last updated" date at the top of this document indicates when this policy was last revised. Continued use of the app after changes constitutes acceptance of the updated policy.
10. CONTACT
Privacy questions, requests, or complaints:
Loud Unicorn LLC
support@loudunicorn.com
https://didyu.app/contact
Arizona, USA
────────────────────────────────────────
GDPR — Your Rights (EU/EEA Users)
Last updated: May 1, 2026
This section applies to users in the European Union (EU) and European Economic Area (EEA) under Regulation (EU) 2016/679 (General Data Protection Regulation).
Data Controller
Loud Unicorn LLC
support@loudunicorn.com
Arizona, USA
Legal Basis for Processing (GDPR Article 6)
Contractual necessity (Art. 6(1)(b)): Processing your blocked app selection, unlock expiry, and purchase history is necessary to provide the core Pay To Unlock service — blocking apps and lifting shields after a valid purchase or free unlock.
Legitimate interests (Art. 6(1)(f)): Storing resistance events and scheduling weekly recap notifications serves our legitimate interest in helping you track your habit progress. You can object to this processing at any time (see Your Rights below).
Consent (Art. 6(1)(a)): By granting FamilyControls / Screen Time permission and enabling notifications, you consent to those specific processing activities. You may withdraw consent at any time in iOS Settings.
Your Rights Under GDPR
| Right | How to Exercise |
|-------|----------------|
| Access (Art. 15) | All data is viewable in-app (Stats screen). No server-side copy exists. |
| Rectification (Art. 16) | Modify your blocked app list or settings in-app at any time. |
| Erasure (Art. 17) | Uninstall the app to delete all local data. Contact support@loudunicorn.com for any server-side records (none exist). |
| Restriction (Art. 18) | Revoke Screen Time permission in iOS Settings > Screen Time. |
| Data Portability (Art. 20) | All data is on your device. Contact support@loudunicorn.com for assistance. |
| Object (Art. 21) | Uninstall the app or revoke permissions at any time. |
| Withdraw Consent | Revoke permissions in iOS Settings at any time. |
| Lodge Complaint | Contact the data protection authority in your EU/EEA member state of residence. |
We will respond to verified rights requests within 30 days.
International Data Transfers
Pay To Unlock stores all data locally on your device. We do not transfer personal data to any servers outside the EU/EEA. StoreKit purchase verification is Apple-to-Apple and governed by Apple's Standard Contractual Clauses with EU users.
Contact for GDPR Inquiries: support@loudunicorn.com
────────────────────────────────────────
CCPA/CPRA — Your Rights (California Residents)
Last updated: May 1, 2026
This section applies to California residents under the California Consumer Privacy Act (Cal. Civ. Code §1798.100 et seq., "CCPA") as amended by the California Privacy Rights Act ("CPRA").
Categories of Personal Information We Collect
| CCPA Category | What We Collect | Stored Where |
|---------------|----------------|--------------|
| Identifiers | Apple Sign-In opaque user token (if used) | Device only |
| Commercial information | Date, amount, hours per purchase | Device only |
| Inferences | Resistance event dates and amounts | Device only |
We do NOT collect: real name, email, postal address, SSN, financial account numbers, geolocation, biometrics, health/medical data, sex life data, racial/ethnic origin, religious beliefs, union membership, or communications.
Purpose of Collection
- To block and unblock selected apps based on purchase status
- To verify purchases via Apple StoreKit
- To display personal spending and resistance stats in-app
- To schedule local notifications related to your usage
Sale or Sharing of Personal Information
We do not sell personal information (CCPA §1798.140(ad)). We do not share personal information with third parties for cross-context behavioral advertising. We have no backend server and no third-party analytics integrations.
Your CCPA/CPRA Rights
Right to Know (§1798.100): You may request disclosure of the categories and specific pieces of personal information we collect. All data is viewable in-app; we hold no server-side copies.
Right to Delete (§1798.105): You may request deletion of personal information. Uninstalling Pay To Unlock deletes all local data. Contact support@loudunicorn.com for any additional records.
Right to Correct (§1798.106): You may correct inaccurate personal information by editing your settings in-app.
Right to Opt-Out of Sale/Sharing (§1798.120): We do not sell or share personal information. No opt-out mechanism is required.
Right to Limit Use of Sensitive Personal Information (§1798.121): We do not collect sensitive personal information as defined by CPRA.
Right to Non-Discrimination (§1798.125): We will not discriminate against you for exercising any CCPA/CPRA right.
How to Exercise Your Rights
Email: support@loudunicorn.com
We will verify your identity and respond within 45 days. If more time is needed, we will notify you and may extend by an additional 45 days.
Authorized Agent
You may designate an authorized agent to submit CCPA requests on your behalf. The agent must provide written authorization from you.
Contact
California Privacy Inquiries: support@loudunicorn.com
Loud Unicorn LLC, Arizona, USA
PRIVACY
Pay To Unlock · updated May 1, 2026