Privacy Policy

Effective 22 July 2026

The short version. Cờ•Chess•Qi collects only what it needs to run the game: your account, your moves, your ratings, and a device push token so opponents can notify you of their next move. We do not run third-party advertising or analytics, we do not track you across other apps or websites, and we do not sell your data. Payments are handled entirely by Apple — we never see your card.

To delete your account and associated data, use Menu → Security → Account → Delete Account in the app, or email support@cochessqi.com. See our account deletion page for step-by-step instructions.

1. Who we are

Cờ•Chess•Qi is a Xiangqi (Chinese Chess / Cờ Tướng) app for iPhone and iPad, published by CO CHOI, LLC. The app's bundle identifier is Choi.Co.XiangQi.Chess. This policy describes how the app and its backend handle your information.

For any privacy question or request, contact support@cochessqi.com.

2. What we collect, and why

This section describes everything the app collects. All of it is for app functionality; none is for advertising, tracking, or third-party use, and the app's PrivacyInfo.xcprivacy manifest declares the corresponding categories Apple uses to populate the App Store privacy label.

Account identifiers

We use this information to create and maintain your account, sign you in across devices, and let other players see your display name and chosen avatar.

Gameplay data

This data is the game. We store it so you can resume games, see your history, match against players near your rating, and receive notifications about your turn.

Device identifier (for push notifications)

So we can tell you when an opponent has moved or your tournament round has started, we store a Firebase Cloud Messaging (FCM) token for each of your devices, keyed by the device's vendor identifier (identifierForVendor). The vendor identifier is generated by iOS and is scoped to apps from the same publisher; it resets when you uninstall the app. We do not use Apple's advertising identifier (IDFA) and the app does not present the App Tracking Transparency prompt because we do not track.

Email hash (so people who know your address can find you)

When your account is created we store a one-way SHA-256 hash of your email address on your user record. If another player types your exact email address into friend search, their device hashes it and matches it against that stored hash so they can send you a friend request. Your raw email address is never revealed to them — they see only your display name, avatar, and country. Apple's private-relay addresses (*@privaterelay.appleid.com) are excluded and never hashed. The app does not read your address book.

Phone number (optional, and only if you type one in)

The Account screen has an optional phone-number field. If you fill it in, the number is stored on a private area of your own user record that only you can read — it is never shown to other players, never used for matchmaking, and never used to market to you. We do not verify it, we do not send SMS, and leaving it blank costs you nothing. You can change or clear it at any time from the same screen, and deleting your account deletes it.

Camera and photos (only when you import a board position)

The app can import a board position from a photograph of a physical Xiangqi board, either by taking a new photo or by choosing an existing one. iOS asks your permission the first time you use it. The image is read into memory, recognised entirely on your device, and then discarded — it is never uploaded to our servers, never attached to your account, and never shared with anyone. Because nothing from the image is collected or transmitted, no photo data appears in the app's privacy manifest. If you never import a board, the app never asks for camera or photo access.

Anonymous crash diagnostics

If the app crashes, an anonymized crash report is sent to Firebase Crashlytics so we can fix the bug. The report contains the stack trace, OS version, device model, and locale. It does not contain your name, email, account identifier, or game contents. This is the only category in the privacy manifest marked "not linked to user identity".

Standard iOS storage

The app uses UserDefaults to remember settings such as your selected board theme, sound preferences, and your Diamond Club membership status flag (mirrored from StoreKit). Apple categorizes this under privacy reason code CA92.1 ("access information about the user's own app").

3. What we do not collect

4. Third-party services we use

The app relies on the following infrastructure providers. Each receives only the data described in §2, only for the purpose stated, and processes it under their own privacy terms.

Apple

Google / Firebase

Firebase processes data on Google-operated servers, which may be located outside your country. Google's handling of Firebase data is governed by the Firebase Data Processing Terms.

The chess engine

The chess engine runs entirely on your device. It does not send your moves, games, or any other information over the network. There is no cloud chess analysis.

5. In-app purchases

Cờ•Chess•Qi offers an optional auto-renewing Diamond Club membership through Apple's App Store. It is sold as a monthly plan (Choi.Co.XiangQi.Chess.pro.monthly) and an annual plan (…pro.annual), each including a free trial, alongside limited-time Founders plans (…pro.founders.monthly, …pro.founders.annual) which are billed immediately at their discounted rate and do not include a trial. Current pricing is shown in the app before you purchase.

Purchases, renewals, refunds, family sharing, and cancellation are handled entirely by Apple. We see only the resulting entitlement state (whether Diamond Club is active) and the original transaction identifier needed to verify it. We do not receive your name, address, or payment instrument. Your membership renews automatically until cancelled — manage or cancel it at any time in Settings → your Apple Account → Subscriptions on your device. Deleting your Cờ•Chess•Qi account does not cancel the subscription; cancel it with Apple first.

6. How we share information

We do not sell your data, share it for advertising, or disclose it to brokers. The only ways your information moves outside the app and its backend are:

7. Data retention and account deletion

Account information and game records are retained for as long as your account is active.

You can delete your account and associated personal data at any time, two ways: in the app via Menu → Security → Account → Delete Account (this takes effect immediately and is irreversible), or by email to support@cochessqi.com from the address linked to your account — or, if you signed in with Apple's private relay, with enough information for us to identify the account (username, approximate sign-up date, last device used). Verified email requests are completed within 30 days. Full step-by-step instructions, and exactly what is deleted versus anonymized, are on our account deletion page. Anonymous, aggregated, or fully de-identified data (for example, anonymized crash reports already submitted to Crashlytics) may be retained beyond that window.

Note that completed game records may continue to appear in your former opponents' game histories, since they are part of those opponents' personal records too. Your identity in those records will be replaced with a generic "deleted player" label.

8. Your rights

Depending on where you live, you may have rights to access, correct, port, or delete your personal data, and to object to or restrict certain processing. Residents of the European Economic Area, the United Kingdom, and Switzerland have rights under the GDPR; residents of California have rights under the CCPA/CPRA; similar rights exist in many other jurisdictions. To exercise any of these rights, email support@cochessqi.com. We will respond within the timeframe required by applicable law.

Where the GDPR applies, we rely on these lawful bases: performance of a contract — creating and maintaining your account, running your games, matchmaking, tournaments, clubhouses, and delivering turn notifications; legitimate interests — keeping the service secure, preventing abuse, and diagnosing crashes; and consent where you grant it, such as push notifications and camera or photo access, which you can withdraw at any time in iOS Settings without losing access to the rest of the app.

If you are in the EEA, the United Kingdom, or Switzerland, you also have the right to lodge a complaint with your local data-protection supervisory authority.

9. Children

Cờ•Chess•Qi is rated 4+ in the App Store and is suitable for general audiences, but it is not directed at children under 13 (or the equivalent minimum age under your local law). We do not knowingly collect personal data from children below that age. If you believe a child has created an account, contact support@cochessqi.com and we will delete it. If you sign in with Apple's "Ask to Buy" or Family Sharing, the in-app purchase flow honors your family controls.

10. Security

All traffic between the app and our backend is encrypted in transit using TLS. Authentication tokens are stored on-device in iOS's keychain. We make reasonable efforts to protect your information, but no internet service is perfectly secure; we cannot guarantee absolute security.

11. International transfers

Our backend runs on Google Cloud / Firebase infrastructure. Your data may be stored or processed in countries other than your own, including the United States. By using the app, you understand that your data may be transferred to facilities outside your country, which may have data-protection rules different from those of your jurisdiction.

12. Changes to this policy

If we change this policy, we will update the "Effective" date at the top and, for material changes, surface a notice in the app. Continued use of the app after a change becomes effective constitutes acceptance of the updated policy.

13. Contact

Privacy questions, deletion requests, or rights requests: support@cochessqi.com.