MathNivo Privacy Policy
Last updated: October 31, 2026
1. Introduction
MathNivo is a math practice app for students. This policy explains how MathNivo handles information in the Android app, its online services, and the MathNivo website.
2. Information the app asks for
The app does not require a MathNivo account and does not ask for a student’s name, email address, date of birth, phone number, or bank or card details. Optional subscription purchases are handled through Google Play as described below. Students enter answers in the practice interface. Please do not include names, contact details, school records, or other identifying information in an answer.
3. Information stored on your device
The app stores learning progress and practice summaries on your device, including skills started or completed, attempt and result counts, help-feature use, and your most recent place in the curriculum. This information is stored in app-private local files separately from the server practice records described below. You can clear it in Settings → Your data → Clear learning progress. Android Auto Backup and device-transfer backup are disabled for the app. Uninstalling the app also removes its app-private data.
4. Information sent to and stored by our server
When you use online practice, the app sends your selected skill, generated problem context, and submitted answer to the MathNivo server to create problems and check your work. It also sends requests when you ask for hints, explanations, or solutions.
The server keeps practice records that include skills and problem references, results, correct mathematical answers, help-feature use, and AI explanation records. Incorrect or unsupported answer text is processed to check the answer but is not saved as a practice record. The server keeps the resulting judgment and the other practice-record fields described above.
The active practice database uses a 90-day cleanup threshold, measured from an attempt's creation time. A cleanup deletes attempts older than that threshold and their associated events. Cleanup runs when the service initializes and is subsequently triggered by incoming requests when at least 6 hours have elapsed since the previous cleanup. It is not an independent scheduled deletion job: records can remain beyond 90 days until a later cleanup runs, particularly when there are no incoming requests. This rule describes the active practice database, not a guaranteed deletion deadline for all data or any backup copies.
The app uses temporary random session cookies and attempt identifiers to associate requests with a practice session. The server uses a session-level pseudonymous learner identifier for its practice records. MathNivo does not link these identifiers to a MathNivo account, student name, Google account identity, or hardware device identifier; they can still associate multiple requests and practice records with the same session and are not a claim of complete anonymity. The session becomes invalid after 8 idle hours or a server restart. Expired registry entries are removed on later session access or creation; capacity eviction or a restart can also remove entries. Active sessions can last longer, and invalidity does not guarantee immediate erasure of every memory reference. The app does not provide account-based lookup or an in-app way to delete an individual server practice record.
To count how many devices open the app and whether they come back, the app generates a randomly generated install identifier the first time it runs and stores it on the device. When a session starts, the app sends that identifier to the server, which records only the identifier, the UTC date, and a count of opens for that date. The identifier is not an account, device, or advertising identifier, is not derived from anything the learner types, and is not linked to a name, email address, Google account, practice answers, or the session-level learner identifier described above. These rows use the same 90-day cleanup threshold as practice records. Clearing the app's data or uninstalling the app removes the stored identifier from the device, and a new one is generated if the app is installed again.
5. Guided AI and OpenAI
The app does not connect directly to OpenAI. When you request a Guided AI explanation, the MathNivo server may call OpenAI’s Responses API. Depending on the answer-visibility rules, the request contains only trusted server-generated mathematical content, such as the math problem, relevant concept facts, and mathematical steps whose server-owned source has been verified, together with limited explanation-style, help-level, and answer-status classifications. Students' raw answers, free text, and untrusted content derived from them are not sent to OpenAI, even if an answer is mathematically correct. Before sending a request, the server checks that the outgoing content matches the trusted source. If that check fails, it does not call OpenAI and uses existing non-AI explanation or feedback instead. We do not send session or attempt identifiers, the client IP address, device identifiers, or conversation history to OpenAI.
Requests use store:false to disable stored response history, not all provider storage or processing. This is not Zero Data Retention. OpenAI's default abuse-monitoring logs may include prompts, responses, and derived metadata and are generally retained for up to 30 days, with longer retention possible for legal or harm-prevention reasons. Other service-specific storage, including prompt caching, can apply. We do not promise an absolute 30-day limit. OpenAI states that API data is not used for training unless the customer opts in. See OpenAI's data controls.
6. Technical information and logs
Cloudflare processes API traffic, including the client IP address and request content, to deliver and protect the service. Our API access logs retain a shortened IP address (IPv4 /24 or IPv6 /48), request time, route type, status, response size, and duration for about 14 days. These logs do not contain request bodies, query parameters, User-Agent, referer, or full attempt identifiers.
Uvicorn’s default access log is disabled. MathNivo application service logs contain a random request identifier, request method, route template, status, and duration. The service journal is configured with a 30-day retention setting; removal follows the journal's cleanup behavior rather than a per-entry deadline. Some older service log entries created before September 29, 2026 may contain a full IP address and an attempt identifier in the request path and remain subject to that setting.
Cloudflare may also process API security and network information under its service terms. Its provider-side retention depends on the service and account settings and is not controlled by MathNivo's application log rotation. A period available for querying Cloudflare's dashboard is not proof that underlying provider records have been deleted.
7. Our website
The MathNivo website uses Cloudflare Web Analytics to measure page views and page performance. Cloudflare states that Web Analytics does not use advertising cookies or collect visitors’ personal data. Cloudflare reports that unsampled beacon data is retained for 7 days and then aggregated to about 10% of the original volume for longer-term analytics. Cloudflare bot protection may also process website requests to prevent automated abuse. The website analytics script is not an analytics SDK in the Android app.
8. Other third-party services and where information is processed
Cloudflare provides network delivery and security for the website and API. OpenAI provides the optional Guided AI explanation service. The Android app includes Google Play Billing for optional MathNivo Pro subscriptions. Google Play handles checkout and payment information under its own terms and privacy policy. MathNivo does not directly receive, collect, or store bank account or card numbers, or receive your Google account name or email through its subscription verification API. Google Play and its SDK may also process technical information under Google's applicable policies. This policy describes MathNivo's verified purchase flow, not a complete inventory or verified retention schedule for every internal SDK operation. The app does not include Firebase Analytics, Crashlytics, or an advertising SDK.
Subscription purchase verification and entitlement
Google Play supplies product, plan, eligible offer, localized price, and purchase information to the app. Purchase details made available in app memory include the purchase token, order identifier, purchase time, status, acknowledgement status, and signed purchase data. When you purchase or restore a subscription, or the app rechecks an existing purchase at startup, resume, or proof refresh, it reads a purchase token and sends it over HTTPS to the MathNivo backend, through Cloudflare; it does not send the full purchase-detail record to MathNivo. The backend sends the token to the Google Play Developer API to check the subscription. It processes the subscription state, product and plan identifiers, eligible offer and trial-phase information, expiry time, automatic-renewal status, and latest successful order identifier. If Google supplies a linked purchase token needed to resolve a replaced purchase, the backend may also verify that linked purchase.
The result determines eligibility for MathNivo Pro features. The backend may issue a signed, short-lived access proof, sent by the app with practice requests. This proof contains the grant state and a pseudonymous reference derived from the existing random session learner identifier, not the purchase token, order identifier, Google account identity, or payment details. It is signed, not encrypted.
Purchase data handling and retention
MathNivo does not save purchase tokens, token fingerprints, order identifiers, purchase histories, or subscription states in its database or local progress files, and its configured access logs do not record purchase tokens or access proofs. The backend processes Google purchase responses in memory for verification. The app retains purchase tokens and retry references in process memory for verification and proof refresh; these are not written to MathNivo app storage. The active proof-refresh token is cleared when the API client is closed or receives an applicable definitive denial. Acknowledgement and retry references may remain in memory for the app process lifetime. There is no fixed token-memory retention timer, and tokens are not guaranteed to be removed after every request.
The app uses cached verified entitlement for at most 10 minutes and never beyond the verified expiry. That entitlement cache is invalidated when the app goes into the background; startup and resume request fresh verification. Access proofs are kept in app memory and are valid for at most 5 minutes, or less if the verified subscription expires. These are authorization validity limits, not guarantees of immediate erasure of every memory copy. The server uses the existing in-memory session and a revocation-generation counter, not a subscription database; their lifecycle is described in section 4. Google Play retains its own purchase and payment records under its terms. Subscriptions automatically renew unless canceled through Google Play subscriptions; clearing MathNivo learning progress or uninstalling MathNivo neither cancels a subscription nor deletes Google's records. MathNivo does not offer account-based purchase-record deletion. Existing technical logs and provider processing described above still apply to subscription requests. See our Terms of Use for billing, trials, cancellation, and refunds.
MathNivo’s practice database and application logs are hosted on servers in the United States. Cloudflare and OpenAI may process information in other locations under their respective service terms. The operator maintains the service from China. If you contact support, your email provider will also process the email address and information you choose to include.
9. Data choices and security
You can clear learning progress stored on your device in the app's Settings. This does not delete server practice records, technical logs, or provider records. Server practice records are subject to the threshold and request-triggered cleanup described in section 4, not a guaranteed 90-day deletion deadline. The app does not provide account-based lookup or in-app deletion for an individual server record. Contacting support is a way to ask privacy questions, not an implemented account-based record-deletion service or a promise of a specific deletion deadline.
Communication between the app, website, and MathNivo servers uses HTTPS. We use technical and organizational measures intended to protect information handled by MathNivo. No device, network transmission, or storage system can be guaranteed completely secure.
10. Students and parents
MathNivo is intended for students in the 9–12, 13–15, and 16–17 age groups, including children under 13. The app does not ask students for a name, email address, date of birth, or account details. Students enter answers in the practice interface, and those answers are sent to MathNivo to be checked. Please do not enter names, contact details, school records, or other identifying information in an answer. Parents or guardians with privacy questions can contact us at [email protected]. Server practice records follow the cleanup mechanism in section 4. The app does not use MathNivo accounts to identify individual students and does not implement an in-app age screen or parental-consent verification flow. Google Play purchase controls are not a MathNivo parental-consent system. This policy does not assert that every third-party SDK has been certified for children or that a consent mechanism has been implemented.
11. What we do not do
MathNivo does not sell or rent practice information, use it for advertising, or build advertising profiles. The Android app has no advertising or behavioral analytics SDK. The website’s Cloudflare Web Analytics is described above.
12. Changes to this policy
We may update this policy when the app, services, or applicable requirements change. We will post the current version on this page and update the date above.
13. Contact
MathNivo is operated by Deqiang Zhang, an independent developer based in Chongqing, China.
Room 13-5, Building 14, Dachuan Shui'an Residential CommunityJiangbei District, Chongqing, China
For privacy questions, contact [email protected].