Pyx Privacy Policy
Effective date: September 4, 2026
Last updated: September 16, 2026
This Privacy Policy explains how Cure AI, LLC, a Florida limited liability company based in Tampa, Florida, doing business as Pyx ("Cure AI," "Pyx," "we," "us," or "our"), handles information in connection with the Pyx desktop application (the "App"), the website at pyx.finance (the "Site"), and the licensing and support services that go with them (together, the "Services").
The defining fact about Pyx is that your portfolio data stays on your own computer. We built the product so that we never receive it. This policy tells you exactly what does and does not leave your device, where it goes, and why. If you do not agree with this policy, do not use the Services.
1. The short version
- Your financial data never leaves your machine. Accounts, holdings, transactions, prices, notes, tags, and settings live in a local database file on your computer. We have no cloud copy and no way to see them.
- The App does not track you. No analytics, no advertising, no telemetry, and no crash reporting that leaves your device.
- The App can only reach nine internet hosts. They are listed in Section 4 and enforced by a network allowlist compiled into the software. Anything else is refused.
- Brokerage access is read only. Your brokerage credentials go directly to SnapTrade, never to us or to the App. The App cannot place trades or move money.
- The only personal data tied to your subscription is your email address, which you give to Polar, our payment provider and Merchant of Record, at checkout. Our own license service stores nothing.
- The Site uses privacy-focused, cookieless analytics (Vercel Web Analytics) to count page views. This is the only analytics anywhere in the Services, and it never touches the App.
- The Site has an optional email list and a contact form. You join the list only by ticking what you want to receive, you can remove yourself without asking us, and the contact form works without an email address.
- You are in control. The local database is encrypted at rest by default, it is a standard SQLite file you can open with your own tools, and you can wipe it from within the App at any time.
2. Where your portfolio data lives
Everything the App knows about your portfolio is stored in a database file inside your user profile on your own device: linked accounts, holdings, cost basis, transactions, live and historical prices, notes, tags, target allocations, chart workspaces, application settings, and an append-only local activity log of syncs, imports, exports, deletions, and AI agent activity.
We do not collect, receive, store, transmit, or have any means of accessing this data. Closing the App does not send it anywhere.
Encryption. The database is encrypted at rest by default using public-key cryptography (age, X25519) with the key held in your operating system keychain. Credentials such as your license key and SnapTrade secret are kept in a separate encrypted secrets file sealed with the same keychain key and are scrubbed from memory when no longer needed. While the App is running, the working database is decrypted on disk so it can be used, and it is re-encrypted when you quit. If the App crashes, the decrypted copy stays on disk until the next clean exit. You can turn encryption off in Settings, Privacy. These keys are never transmitted to us.
Ownership. The database is a standard SQLite file you can open, copy, back up, or inspect with your own tools. The App exports transaction and tag data as CSV, and any AI client you connect through the local agent interface (Section 3.6) can read the same data. Nothing is held hostage.
Deletion. Settings, Privacy includes a wipe control that deletes all portfolio data from the local database, clears the associated keychain entries, and makes a best-effort request to SnapTrade to delete your SnapTrade user record if you linked a brokerage.
3. What leaves your device, and to whom
Most information involved in the Services flows between you and a third party at your direction. Cure AI is not a recipient of it. Each third party handles data under its own privacy policy, linked in Section 11.
3.1 Brokerage data (SnapTrade)
If you link a brokerage account, the App uses SnapTrade, a third-party account aggregation provider, in read-only mode.
- You enter brokerage credentials directly into SnapTrade's hosted connection portal in your web browser. They never pass through the App or through us.
- The App generates a random per-installation user identifier and holds a matching secret in its encrypted secrets file. It sends signed, read-only requests to
api.snaptrade.comto fetch accounts, positions, balances, and activity, which are stored locally. - The App requests read-only access only. It cannot place trades, transfer assets, or move money, and it never asks for permission to do so.
3.2 Market data (Yahoo Finance)
To show prices, charts, company profiles, and daily exchange rates, the App requests data from Yahoo Finance hosts. Requests contain the ticker symbols and currency pairs involved and the network metadata inherent to any internet request, including your IP address. They do not contain your identity, account numbers, quantities, or portfolio values.
3.3 Public filings (SEC EDGAR)
The research page for a security fetches that company's public filing index and financial statement facts from the U.S. Securities and Exchange Commission at data.sec.gov. Each request carries the company's public CIK identifier and, as the SEC requires of automated clients, a User-Agent header naming the App version, the Site, and our support address. It carries no user identifier, license key, or holdings. Filing documents open in your browser, never inside the App.
3.4 Licensing (the Pyx license service)
Pyx is a paid product, so the App validates your entitlement with our license service at license.pyx.finance (fallback pyx-license.fly.dev). On activation the App sends your license key, App version, and operating system platform; on background refresh it sends the license key only. The service checks the subscription live with Polar and returns a signed, time-limited entitlement token that the App can verify offline.
The license service is stateless. It has no database and keeps no record of you. It applies short-lived, in-memory rate limits keyed by IP address and by a hash of the license key. Its operational logs, held by our hosting provider Fly.io for a limited period, record Polar's internal key identifier, the App version, the platform, and request timing. The license key itself is not written to logs. A license key is a random value that does not reveal your identity.
3.5 Update check and in-app update
About once a day the App fetches public release metadata (latest and minimum supported version) from www.pyx.finance. This request carries no license key, identifier, or portfolio data, only the IP address inherent to any request. There is no setting to disable it.
If you choose to start an in-app update, the App sends your license key to www.pyx.finance to request a signed download manifest, then downloads the package from release-assets.githubusercontent.com over a short-lived signed URL that carries no identifier. The App verifies the package's digest and code signature before installing. Nothing is downloaded or installed without your action.
3.6 AI agents you connect (local MCP interface)
The App can expose a local interface, based on the Model Context Protocol, so that an AI client you choose (for example Claude Code, Claude Desktop, or Codex) can read your portfolio and write notes and tags. This interface is off by default, requires an active subscription, and is controlled by independent toggles in Settings, AI Agents. It listens only on a local socket restricted to your own user account and never on a network port. It adds no outbound hosts.
When you enable it, the data you allow is handed to the AI client you connected, which may send it to that client's model provider under that provider's terms. That transfer is between you and your chosen AI provider. Cure AI is not a party to it and does not receive anything. Every agent connection and every change an agent makes is recorded in the App's local activity log.
3.7 Crash and diagnostic data (local only)
If the App crashes, it writes a report to a local folder on your device. Reports never leave your machine automatically. You decide whether to share one with us, for example by attaching it to a support email.
3.8 Support
If you email us, we receive whatever you choose to include, typically your email address and message. We use it only to respond to and resolve your request. The contact form on the Site works the same way and does not require an email address (see Section 5).
4. Network allowlist
The App enforces a network allowlist compiled into the software. Every outbound request must target one of the hosts below. Requests to any other host are refused and logged locally. As of the effective date, the complete list is:
| # | Host | Operated by | Purpose | What is sent |
|---|---|---|---|---|
| 1 | query1.finance.yahoo.com | Yahoo | Prices, history, daily FX rates | Ticker and currency-pair symbols; IP address |
| 2 | query2.finance.yahoo.com | Yahoo | Quotes and quote summaries | Ticker symbols; IP address |
| 3 | fc.yahoo.com | Yahoo | Consent-cookie seed for Yahoo's sector-profile endpoint | Standard request metadata |
| 4 | api.snaptrade.com | SnapTrade | Read-only brokerage aggregation | Signed request with a random per-install user ID; never a brokerage password |
| 5 | license.pyx.finance | Cure AI | Subscription validation | License key, App version, OS platform |
| 6 | pyx-license.fly.dev | Cure AI | Fallback for host 5 | Same as host 5 |
| 7 | www.pyx.finance | Cure AI | Daily update check; update manifest when you start an in-app update | Daily check: IP address only. Update start: license key |
| 8 | release-assets.githubusercontent.com | GitHub | Serves the update package when you start an in-app update | Nothing beyond the signed URL |
| 9 | data.sec.gov | U.S. SEC | Public filing index and financial facts for the research page | Company CIK; User-Agent naming the App and our support address |
Payment activity with Polar happens in your web browser, not from the App, so Polar is not an App egress host. We will update this table whenever the allowlist changes.
5. The website (pyx.finance)
The Site is hosted by Vercel. Like any web host, Vercel receives standard request data (IP address, browser type, pages requested) to serve pages and defend against abuse, and keeps short-lived server logs.
Analytics. The Site uses Vercel Web Analytics, a cookieless, privacy-focused service. It records page views and a small set of interaction events (for example that a checkout button or a download button was clicked, and whether a download succeeded), together with coarse data such as country, browser, and device type. It does not set cookies, does not build cross-site profiles, and does not identify you personally. Visitors are counted using a hash that is discarded daily. We use this only to understand aggregate interest in the product. No analytics of any kind runs in the App.
Download. The Site serves the App download without a license key. To prevent abuse, the Site keeps short-lived rate-limit counters keyed by IP address.
Email list. The Site offers an optional email list for three things: notice when a Windows or Linux build exists, release notes when a new version ships, and occasional news about Pyx (a few emails a year). You join by entering an address and ticking at least one of those boxes; neither box is ticked in advance, and an address with nothing ticked is not stored. We keep the address, which boxes you ticked, and the time you ticked them, and nothing else about you: no IP address, no browser details, no page history. We send only what you ticked. Every email carries an unsubscribe link, and you can remove the address yourself at any time on the contact page, with no confirmation step. The list is stored in Upstash Redis, the same store that holds the download rate-limit counters. If we use a mailing service to deliver these emails, we will name it in Section 11 before the first one is sent, and it will not add tracking pixels or click tracking to our emails.
Contact form. The contact form sends us a message. An email address is optional and is stored with that one message only, so that a reply can go somewhere; it is never added to the email list. A message sent without an address is anonymous to us. The form on the post-checkout page that asks how you heard about Pyx works the same way and carries no email address at all. Messages are stored in Upstash Redis and deleted once handled.
Checkout and account management. Purchases, invoices, cancellations, and license key recovery happen on pages operated by Polar, our Merchant of Record. When you subscribe you give Polar your email address, name, billing address, and payment method. We never receive your card number or billing address. The only personal data connected to your subscription that we can access is your email address, which we see through Polar's merchant dashboard and use solely for support, license key delivery and recovery, and transactional messages about your subscription. We keep no separate copy of it in our own systems.
6. Why we process information
We process the limited information described above only for these purposes. For users in the European Economic Area, the United Kingdom, and other jurisdictions that require a legal basis, the basis under the GDPR is noted.
| Purpose | Information | Legal basis |
|---|---|---|
| Validate your subscription and deliver updates | License key, App version, platform | Performance of a contract (Art. 6(1)(b)) |
| Fetch market data, filings, and brokerage holdings at your direction | Ticker symbols, CIKs, signed SnapTrade requests | Performance of a contract (Art. 6(1)(b)) |
| Process payment, tax, refunds (Polar) | Email, name, billing details, payment method | Contract and legal obligation (Art. 6(1)(b), (c)), controlled by Polar |
| Support and license recovery | Email, message contents | Contract and legitimate interests (Art. 6(1)(b), (f)) |
| Send the emails you asked for (waitlist, release notes, news) | Email address, topics ticked, time of consent | Consent (Art. 6(1)(a)), withdrawable at any time |
| Answer messages sent through the contact form | Message, and an email address only if you gave one | Legitimate interests (Art. 6(1)(f)) |
| Prevent abuse of the license and download services | IP address, hashed license key, request metadata | Legitimate interests (Art. 6(1)(f)) |
| Understand aggregate Site usage | Cookieless, aggregated analytics | Legitimate interests (Art. 6(1)(f)) |
We do not use information for advertising, profiling, or automated decisions with legal or similarly significant effects, and we do not sell it.
7. How we share information
- Service providers. Polar (payments, Merchant of Record), Fly.io (license service hosting), Vercel (Site hosting and analytics), Upstash (download rate limiting, the email list, and contact messages), and GitHub (update package hosting) process data as described above. Yahoo, SnapTrade, and the SEC receive data at your direction when you use those features. AI providers receive data only if you connect an AI client yourself.
- Legal. We may disclose information when required by law or valid legal process, or to protect our rights, our users, or the public. Because we hold almost no personal data, the practical scope is limited to what Polar holds and to support correspondence.
- Business transfers. If Cure AI is involved in a merger, acquisition, or sale of assets, information may be transferred as part of that transaction, subject to this policy.
8. International transfers
The providers above operate primarily in the United States. If you use the Services from elsewhere, the limited information involved may be processed in the United States and other countries whose data protection laws differ from yours. Polar applies appropriate safeguards, such as the European Commission's Standard Contractual Clauses, for the personal data it controls as Merchant of Record.
9. Retention
- Portfolio data stays on your device for as long as you keep it. You can wipe it at any time from the App.
- The license service retains no personal data. Operational logs are retained by Fly.io for a limited period.
- Download rate-limit counters expire after about sixty seconds.
- Site analytics are aggregated; visitor hashes are discarded daily.
- Your email and billing records are retained by Polar for as long as needed to provide the subscription and to meet its legal, tax, and accounting obligations. When your subscription record is deleted, your license key stops validating on its next refresh.
- Support emails are kept only as long as needed to resolve your request and maintain a reasonable support history.
- Email list entries are kept until you remove yourself or we close the list, whichever comes first.
- Contact form messages are deleted once handled, and in any case within ninety days.
10. Security
Local-first architecture means your finances never transit our infrastructure. The App uses encryption at rest by default, keychain-sealed secrets, zeroizing memory for sensitive values, TLS 1.2 or higher for every connection, refusal of HTTP redirects so signed requests cannot be replayed elsewhere, and a compiled-in network allowlist. The license service adds size limits, rate limits, and strict transport security headers.
No system is perfectly secure, particularly against an attacker who already controls your device. You are responsible for safeguarding your device, your operating system account, and your license key.
11. Third-party services
These parties process data under their own policies when you use the corresponding features:
- Polar (payments, Merchant of Record): https://polar.sh/legal/privacy
- SnapTrade (brokerage aggregation): https://snaptrade.com/privacy-policy
- Yahoo Finance (market data): https://legal.yahoo.com/us/en/yahoo/privacy/index.html
- U.S. Securities and Exchange Commission (EDGAR): https://www.sec.gov/privacy
- Fly.io (license service hosting): https://fly.io/legal/privacy-policy/
- Vercel (Site hosting and analytics): https://vercel.com/legal/privacy-policy
- Upstash (download rate limiting, email list, contact messages): https://upstash.com/trust/privacy.pdf
- GitHub (update package hosting): https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement
We do not control these parties and are not responsible for their practices.
12. Your rights and choices
Everyone. Without contacting us you can enable or disable database encryption, copy or open your database with your own tools, export CSV, disable or restrict AI agent access, and wipe all portfolio data from within the App. You can also remove your address from the email list on the contact page, or by using the unsubscribe link in any email we send.
EEA and UK residents. Subject to applicable law, you may access, rectify, erase, restrict, and port your personal data, object to processing based on legitimate interests, and withdraw consent where processing is based on consent. Because the personal data tied to your subscription is controlled by Polar, the quickest route is Polar's customer portal. You may also contact us and we will assist. You have the right to lodge a complaint with your local supervisory authority.
California residents. To the extent the CCPA applies, you have the rights to know, delete, and correct personal information, and not to be discriminated against for exercising them. We do not sell personal information or share it for cross-context behavioral advertising, and have not done so in the preceding twelve months. The only category we hold is identifiers (email address and license key).
Do Not Track. The Site's analytics are cookieless and non-identifying, and the App performs no tracking, so there is nothing to opt out of. We do not respond to Do Not Track signals differently for that reason.
13. Children
The Services are for adults managing their own investments and are not directed to anyone under 18. We do not knowingly collect personal information from minors. If you believe a minor has provided information to us, contact us and we will address it.
14. Changes to this policy
We may update this policy. We will revise the "Last updated" date and, for material changes, give more prominent notice on the Site or in the App. Continued use after an update takes effect constitutes acceptance.
15. Contact
Cure AI, LLC, doing business as Pyx
401 E. Jackson Street, Suite 2225
Tampa, FL 33602
United States
Email: jaredswatson55@gmail.com
For matters concerning payment, billing, or your subscription record, you may also use the Polar customer portal, as Polar is the Merchant of Record and controller of that information.