Grinny — Privacy Policy
Grinny – Funny Face Camera · Operated by YS Labs Effective date: 2026-10-25
The short version
Grinny runs on your device. Your photos, videos, face data and voice are processed on your device and are never uploaded to us. They leave your device only if you choose to save or share them (for example, to your photo library, iCloud Photos or another app). There are no accounts, no ads, and no analytics or tracking SDKs.
Only three kinds of information leave your device:
- Purchase information — handled by Apple or Google and by our subscription provider (RevenueCat), so the app knows whether your subscription is active.
- Error reports that carry no user ID — sent only when something in the app breaks (iOS app only at this time).
- Downloads of new characters and filters — the app asks our content server (Cloudflare) for new content. No information about you is sent with that request.
Who we are
YS Labs ("we", "us") develops and operates Grinny. Yongin-si, Gyeonggi-do, South Korea Email: contact@yslabs.dev
Where Grinny is available
- iOS / iPadOS — App Store (available now).
- Android — Google Play (coming soon). This policy already covers the Android app. Where the Android app differs, it is marked Android.
What we collect and why
| Data | Collected? | Purpose | Linked to you? |
|---|---|---|---|
| Camera feed, photos and videos you make | No — processed and stored only on your device | — | — |
| Face data (face landmarks used to place characters and masks) | No — computed on your device in real time, never stored or sent | — | — |
| Microphone audio (sound-reactive effects, sound in videos) | No — processed on your device; sound in a video stays in that video file on your device | — | — |
| Purchase history | Yes, by Apple/Google and RevenueCat | To check whether your subscription is active and to restore purchases | No — tied to a random app ID (not linked to your name, email or Apple ID) |
| Crash and error reports | Yes, only when something goes wrong (iOS only — not enabled in the Android app) | To find and fix bugs | No — see "How error reports are limited" |
| Contacts, location, browsing history, advertising identifiers | No | — | — |
Purchase information includes the product you bought (monthly or yearly), purchase and renewal dates, and the store's transaction identifiers. RevenueCat also receives basic technical information that its SDK sends with each request (such as platform, app version and operating system version) and, like any server, sees your device's IP address when the app connects.
Error reports contain: the error message (with short notes about earlier errors in the same session), where in the app's code it happened, the app version and build, and the device type and operating-system version (from the user-agent). They never contain photos, videos, the camera image, screenshots, audio or face data.
How error reports are limited
Error reports are used only to keep the app working. We have set them up so that:
- no user ID, subscription ID or device advertising ID is attached;
- IP addresses are not stored, and location derived from them is removed;
- no screenshots are taken and no record is kept of what you tap or which screens you visit;
- links to your photos are removed before a report is sent, and the app's internal log messages are not included;
- no "app opened" sessions are sent — a report is created only when an error happens.
Who we share data with
We do not sell or rent your personal information, and we do not share it for advertising.
| Provider | Role | What it receives | Location |
|---|---|---|---|
| Apple (App Store) | Payments, subscription management | Your payment and Apple ID details — we never see them | Global |
| Google (Google Play) — Android | Payments, subscription management | Your payment and Google account details — we never see them | Global |
| RevenueCat, Inc. | Subscription status | Random app ID, purchase information, basic technical information | United States |
| Functional Software, Inc. (Sentry) — iOS only | Error reports | The error reports described above | United States |
| Cloudflare, Inc. | Delivers new characters and filters | A file request; it sees your IP address to send the files. No information about you is sent, and we do not receive or store IP addresses | Global network |
These providers act on our behalf (as processors or service providers) and handle data under their own privacy policies and security measures: Apple · Google · RevenueCat · Sentry · Cloudflare
Apple and Google may also give us aggregate, non-identifying statistics (for example, download counts or crash statistics from people who chose to share them with developers).
There are no advertising networks, analytics services or social SDKs in Grinny.
How long we keep it
| Data | Retention |
|---|---|
| Photos, videos and settings on your device | Until you delete them in the app, or delete the app |
| Downloaded characters and filters (cache on your device) | Until replaced by newer content or the app is deleted |
| Purchase records (RevenueCat) | Kept while your subscription is active and for up to 24 months after it ends (to restore purchases and handle refunds or disputes), then deleted |
| Purchase records (Apple / Google) | Under Apple's or Google's own policies |
| Error reports (Sentry) | Deleted automatically after 90 days at most |
Your choices and how to delete data
- Delete individual photos in the app's gallery.
- Deleting the app removes everything Grinny stored on your device.
- To have your purchase record deleted, email us the Order ID from your App Store receipt email (or from reportaproblem.apple.com). We will find the matching record and ask RevenueCat to delete it.
- Error reports: they carry no user ID, so we cannot tell which reports come from your device or switch them off for one device (Art. 11 GDPR). Reports are deleted automatically after 90 days at most. You can still write to us with any concern.
- Accounts: Grinny has no user accounts, so there is no account to delete.
Subscriptions
Grinny Pro is an optional auto-renewing subscription (monthly or yearly). Payment, renewal, cancellation and refunds are handled by Apple (App Store) or Google (Google Play) under their policies. We never receive your payment card details. See the Terms of Use and Support for how to cancel.
Children
Grinny is rated 9+ on the App Store. It is used by teens and may also be used by younger children, including children under 13 (or under the age of digital consent in their country).
- Grinny does not ask for a name, email, birthday, phone number or any other contact information. It has no accounts, chat, social feed, user-content hosting or advertising.
- Grinny collects only persistent identifiers (a random app ID used by RevenueCat, and IP addresses that our providers see in transit) and only to support the App's internal operations: validating and restoring a subscription, and diagnosing crashes. To make sure these are not used for anything else, we attach no user ID to error reports, do not store IP addresses or location in error reports, use no advertising or analytics SDKs, and our providers may not use the data to contact anyone, build profiles or show ads. Because of this, we do not ask for parental consent under the U.S. Children's Online Privacy Protection Act (COPPA).
- We do not process children's data on the basis of consent, so the GDPR's parental-consent rule for information society services (Article 8) does not apply to Grinny. Purchases go through Apple or Google, where parents can require approval (for example, Apple's Ask to Buy or Google Family Link).
- Parents and guardians can ask us to review or delete their child's purchase record by emailing contact@yslabs.dev. Because we hold no name or contact details, we will ask for the Order ID from the store receipt to find the record. If a child under 13 emails us, we use the email address only to reply once and then delete it, unless a parent contacts us.
Security
Data that leaves the device is sent over encrypted connections (HTTPS). We collect as little as possible, keep no copies of your photos or face data, and limit access to the provider dashboards to YS Labs.
Users in the EEA, the UK and Switzerland (GDPR)
Controller: YS Labs, Yongin-si, Gyeonggi-do, South Korea — contact@yslabs.dev
| Processing | Purpose | Legal basis |
|---|---|---|
| Purchase records (Apple/Google, RevenueCat) | To provide the subscription you bought | Performance of a contract (Art. 6(1)(b)) |
| Error reports with no user ID (Sentry, iOS) | To find and fix bugs | Legitimate interest in keeping the app working (Art. 6(1)(f)) — reports carry no ID and cannot be linked to you (see "Your choices") |
| Content delivery (Cloudflare) | To send the characters and filters the app requests | Legitimate interest in providing the app's features (Art. 6(1)(f)) |
Information stored on your device is used only because the app needs it to work.
International transfers: our providers may process data outside your country, including in the United States, under the safeguards they offer (such as the EU Standard Contractual Clauses or the EU–U.S. Data Privacy Framework and its UK and Swiss extensions).
YS Labs is in South Korea, which the European Commission recognises as providing adequate protection. Purchase information is needed to provide Grinny Pro; without it the subscription cannot work. We do not make automated decisions that have legal or similarly significant effects.
Your rights: access, rectification, erasure, restriction, data portability, and objection. Because we do not collect your name, account or any direct identifier, we may not be able to link data to you — but write to us and we will do what we can. You can also complain to your local data protection authority.
California residents (CCPA/CPRA)
- In the last 12 months we collected only the categories described above: commercial information (purchase history, under a random app ID) and, on iOS, internet or other electronic network activity information (error reports). We collect no sensitive personal information.
- We do not sell personal information or share it for cross-context behavioral advertising (as those terms are defined in the CCPA), including that of consumers under 16.
- You may request to know, delete or correct personal information, and you will not be treated differently for using these rights. Email contact@yslabs.dev; an authorized agent may also contact us on your behalf. We may ask for the Order ID from your store receipt to find the record.
한국어 요약 · 개인정보 보호법 고지
Grinny – Funny Face Camera · 운영: YS Labs · 시행일 2026-10-25
- 처리 목적·항목 - 구독 상태 확인·구매 복원: 구매 내역(상품·구매/갱신 일자·스토어 거래 식별자)과 앱이 만든 임의 ID(가명), SDK 기술 정보(플랫폼·앱 버전·OS 버전) - 오류 수정(iOS만): 오류 내용·발생 위치·앱 버전·기기 종류·OS 버전. 사용자 ID 없음, IP 미저장 - 콘텐츠 전달: 새 캐릭터·필터 파일 요청(개인 정보 미포함) - 사진·영상·얼굴 데이터·마이크 소리는 기기 안에서만 처리되며 수집하지 않습니다.
- 보유 기간 - 구매 기록: 구독 기간 동안, 그리고 구독 종료 후 최대 24개월간 보관한 뒤 삭제합니다(구매 복원·환불·분쟁 대응). 요청하면 그 전에 삭제합니다. - 오류 보고: 최대 90일 후 자동 삭제됩니다. - 기기 안 데이터: 이용자가 삭제할 때까지 보관됩니다.
- 제3자 제공: 없습니다. 판매·광고 목적으로 제공하지 않습니다.
- 처리 위탁 및 국외 이전
| 수탁자 | 위탁 업무 | 이전 국가 | 이전 항목 | 이전 시기·방법 | 보유·이용 기간 | 연락처 |
|---|---|---|---|---|---|---|
| RevenueCat, Inc. | 구독 상태 관리 | 미국 | 임의 ID(가명)·구매 내역·기술 정보 | 앱 사용 시 네트워크로 전송 | 구독 종료 후 최대 24개월 | compliance@revenuecat.com |
| Functional Software, Inc.(Sentry) | 오류 보고(iOS) | 미국 | 오류 보고 | 오류 발생 시 네트워크로 전송 | 최대 90일 | compliance@sentry.io |
| Cloudflare, Inc. | 콘텐츠 전달 | 글로벌 | 파일 요청(IP는 전송 처리에만 사용) | 앱 사용 시 네트워크로 전송 | 전송 처리 중 | PrivacyQuestions@cloudflare.com |
- 결제는 Apple·Google이 각자 방침에 따라 처리합니다.
- 국외 이전을 원하지 않으시면 구독을 이용하지 않으면 됩니다(이 경우 구독 기능을 쓸 수 없습니다). 오류 보고에는 사용자 ID가 없어 특정 기기와 연결하거나 기기별로 중단할 수 없으며, 최대 90일 후 자동 삭제됩니다. 5. 파기: 보유 기간이 끝나거나 요청을 받으면 지체 없이 삭제합니다(전자 파일은 복구할 수 없는 방법으로 삭제). 6. 정보주체의 권리: 열람·정정·삭제·처리정지를 contact@yslabs.dev로 요청하실 수 있습니다. 법정대리인도 요청할 수 있습니다. 7. 만 14세 미만 아동
- 이름·연락처 등을 수집하지 않으며, 동의에 근거한 처리를 하지 않습니다.
- 법정대리인은 위 메일로 아동의 구매 기록 삭제를 요청할 수 있습니다.
8. 자동 수집 장치: 쿠키·광고 식별자를 사용하지 않습니다. 기기 저장소(IndexedDB)는 앱 기능(갤러리·설정·콘텐츠 캐시)에만 쓰입니다.
9. 안전성 확보 조치: 전송 구간 암호화(HTTPS), 수집 최소화, 관리 화면 접근 제한
10. 개인정보 보호책임자: YS Labs 개인정보 보호 담당 · contact@yslabs.dev
11. 권익침해 구제
- 개인정보분쟁조정위원회 1833-6972 (www.kopico.go.kr)
- 개인정보침해신고센터 118 (privacy.kisa.or.kr)
- 대검찰청 1301
- 경찰청 182 12. 변경: 방침이 바뀌면 시행 전에 이 페이지와 시행일을 갱신합니다.
Changes to this policy
If this policy changes, we will update this page and the effective date at the top. Material changes will be noted in the app's release notes.
Contact
contact@yslabs.dev · Support