Kairoscope — Privacy Policy
Effective Date: 2026-12-15
This Privacy Policy explains how Miaoya, an individual developer established in the People's Republic of China ("we", "us") handles information in connection with the Kairoscope mobile application ("App"). By using the App, you agree to this Policy.
1. Summary (Plain Language)
- No account, no email, no password. The App works without signing up, and we do not ask for contact details.
- Birth details are used for one request and not stored. We compute your chart, return it, and keep no profile.
- Charts live in the App on your device, in memory. Closing the App clears them.
- AI narration is off by default. When you turn it on, we send only the computed chart facts — never your birth date, name, or location.
- We never sell your data, and the App has no ads and no third-party analytics or crash SDKs.
- A random identifier created on first launch stays on your device. We use it to meter the free tier and to rate-limit abuse. It is not linked to your identity.
2. Data We Collect
| Category | What it contains | When |
|---|---|---|
| Birth details you type | Date, time (or the noon default), gender label used by chart rules, and the birth region / longitude you pick for solar-time correction | Sent with a single chart request. Not written to any log or database |
| Random install identifier | A random string generated on first launch and stored on your device | Sent with chart and report requests, for free-tier metering, entitlement checks, and abuse rate limits |
| Report content | The reading text you flag, the reason you pick, an optional note, a chart fingerprint (a hash of the reading's basis lines, not your birth data), and the app version | Only when you file a report |
| Purchase state | Subscription status and the purchase token issued by Apple, verified through RevenueCat | Only if you subscribe |
| Language preference | en or zh | Stored on your device only |
We do not collect: precise location (you may type a birth region, but the App never reads GPS), contacts, photos, microphone, advertising identifiers, or health data. The App contains no third-party analytics SDK and no crash-reporting SDK.
Server-side usage metering keeps token counts and estimated cost per model — numbers only, with no user or device reference.
3. How We Use Data
- Compute charts — run the deterministic engine on the birth details you entered and return the result.
- Compose readings — assemble the narrative from the computed facts, using the template, or the language model if you enabled it.
- Meter and protect the service — count free-tier casts per install identifier and rate-limit report submissions.
- Review reports — a human reads flagged text so we can fix or remove it.
- Verify purchases — confirm subscription status with Apple and RevenueCat.
We do not use your data for advertising, profiling, or model training.
4. AI Processing Disclosure
A reading is built in two steps: a computed chart (deterministic algorithms, no third party involved) and a written narrative on top of it.
By default, the narrative is assembled from a deterministic template composer running on our servers. No language model is called, and no data leaves our infrastructure for text generation.
If you turn on "Allow AI-written narrative" (Pro tier only, off by default):
- Provider: Google Gemini, reached through an API relay (AiHubMix) that forwards the request. Both are named in the App under Settings → How your reading is made.
- What is sent: only computed chart facts — palace names, star names and brightness, transformation labels, pillar characters, cycle years, and card names. Never your name, email, precise birthplace, raw birth date, or device identifier.
- What is not sent: any identifier that could link the request to you. Requests are stateless.
- Who can see the request: the relay sees the request body only in order to forward it. It is a processor under §5, not a controller, and we send it no identifiers. The relay runs under zero data retention: it does not store prompt or output content, and keeps only request metadata such as token counts and latency. The model is reached on a paid basis — every call is billed to us rather than drawn from a free testing tier — and we do not train, fine-tune, or evaluate models on your inputs or outputs ourselves.
- Turning it off costs you nothing: the free tier always uses the template, and Pro falls back to it. With AI off, no request reaches a model provider.
Generated wording may be cached in memory for up to 6 hours so that repeating the same chart does not re-query the model. The cache key is a hash of the reading's basis lines; it contains no birth data and is keyed to no user.
You can report any generated reading from within the App. Reports contain the flagged text, the reason, an optional note, and your install identifier — never your birth details. We review reports within 24 hours.
5. Sharing and Processors
We share data only with service providers under contract, each limited to its function:
| Provider | Function | Data shared |
|---|---|---|
| Tencent Cloud (Tencent Holdings Ltd.; data center in Silicon Valley, United States) | Serves the app and the chart API | Request contents in transit; nothing persisted beyond the in-memory cache described in §4 |
| Google (Gemini API) | Generates narrative wording | Only computed chart facts, and only when AI narrative is switched on |
| AiHubMix (relay) | Forwards requests to the model provider | Only computed chart facts, in transit; no identifiers. Zero data retention — prompt and output are not stored, only token and latency metadata |
| RevenueCat | Subscription management | Purchase tokens and the anonymous app user ID issued by RevenueCat |
| Apple | In-app purchase processing | Payment handled entirely by Apple; we never see card numbers |
This release operates no user database: there is no account record to share, sell, or lose. We do not share data with data brokers or ad networks, and we disclose data only where legally required (valid legal process).
6. Retention
| Data | Retention |
|---|---|
| Birth details | Not retained. Used in memory for the request, then discarded |
| Charts and readings | Held in the App on your device until you close it or tap "New chart" |
| Reading cache (server) | Up to 6 hours, keyed by a hash of the basis lines |
| Reports | Kept in memory only long enough to review — removed after review, and in any case within 90 days. Reports do not survive a service restart |
| Metering counters | Per install identifier, reset daily; not archived |
| Purchase records | Held by Apple and RevenueCat under their policies; we keep only subscription status |
Uninstalling the App removes the install identifier and language preference from your device.
7. Your Rights
Depending on your jurisdiction (GDPR, CCPA, and others), you may have the right to access, correct, export, or delete personal data, and to object to processing.
Because there is no account and no stored profile, most requests resolve to: there is nothing held about you beyond the items in §6. For anything else:
- Access / export / deletion: email dongrun10000@gmail.com with your install identifier (shown in Settings). We respond within statutory timeframes (GDPR: 30 days; CCPA: 45 days).
- Withdraw consent: switch AI narrative off in Settings, or uninstall the App.
- Non-discrimination: we do not degrade the service for exercising these rights.
- Lodge a complaint with your local supervisory authority.
8. Children
The App is not intended for children under 13 (or higher minimum age in your jurisdiction), and we do not knowingly collect their data. If you believe a child provided data, contact us and we will delete it promptly.
9. International Transfers
Requests may be processed in the United States and in the countries where our providers operate, including the United States. Where required (e.g., EEA → third countries), transfers rely on appropriate safeguards such as Standard Contractual Clauses.
10. Security
Transport is encrypted with TLS. Secrets are isolated from application code. No user database exists to breach, and the in-memory cache holds chart facts without identifiers. No method of transmission is 100% secure; we protect data but cannot guarantee absolute security.
11. Changes to This Policy
Material changes will be announced in-App (and via the store listing) before they take effect, with a new effective date. Continued use after that date constitutes acceptance.
12. Contact
Privacy questions or requests: dongrun10000@gmail.com · Lianyungang, Jiangsu, People's Republic of China
Draft text pending legal review. Questions: dongrun10000@gmail.com