Last updated 11 October 2026
The short version. OpenCoinCap has no analytics, no advertising, no tracking pixels and no third-party tracking SDKs of any kind. You can use every feature without an account. What you type stays on your device, apart from a handful of features that cannot work without asking our server something — a wallet address you choose to follow, the videos on a coin page — and section 5 lists every one of them. An account exists only so your own data can follow you to another device, and deleting it erases that copy immediately.
Who we areUsing the app without an accountIf you create an accountGoogle Sign-InWhat leaves your deviceWhat we never collectMarket dataWho processes data for usRetention & deletionSecurityYour rightsChildrenChangesContact
OpenCoinCap is an independent application built and operated by a solo developer ("we", "us"). It shows live prices for cryptocurrencies, precious metals, energy and global stock indices, and lets you keep a portfolio, watchlist and price alerts. This policy covers the OpenCoinCap website at opencoincap.com and the OpenCoinCap mobile apps.
Signing in is entirely optional and no feature is withheld without it. If you do not create an account:
An account exists for one purpose: so the data you entered on one device can appear on another. We collect only what that requires.
| Data | Why |
|---|---|
| Email address | Identifies the account and is how you sign in. |
| Display name | Shown in the app. Defaults to the part of your email before the @ if you do not supply one. |
| Password | Stored only as a salted scrypt hash. Accounts created before that change still hold a bcrypt hash, and it is replaced with a scrypt one the next time you sign in. We never store, log or transmit the password itself, and we cannot recover or read it. |
| Account created / last seen timestamps | Basic account housekeeping. |
| Your synced content | Portfolio transactions, the public wallet addresses you follow, watchlist, alerts, screener presets, comparison set, and display preferences (currency, theme, density, profile mark). Held as a single JSON document belonging to your account. |
| Notification token | Only if you allow notifications: the identifier Google’s messaging service issues to that one install, so an alert can reach a phone that is closed. It names a device, not a person, and signing out deletes it. See section 5. |
That is the complete list. We do not build a profile of you, and we do not analyse your portfolio contents for any purpose other than returning them to your own devices.
Luna, the AI assistant for signed-in accounts, is powered by OpenAI. To answer you, we send OpenAI your recent messages in that conversation, a summary of the portfolio and watchlists in your app (holdings, amounts, values, cost and profit or loss), and a snapshot of the market. We ask OpenAI not to store the request (store: false) and send it an opaque, hashed identifier rather than your email or account ID. OpenAI processes this under its privacy policy and API terms; OpenAI states that data sent through its API is not used to train its models by default, and that it may keep API data for a limited time to monitor abuse.
On our side we keep only a count of the words Luna has written to you each day, to apply the daily allowance, and any answer you choose to report. The conversation itself is kept on your device and is not stored on our server. Do not put passwords, keys, seed phrases or other secrets in a message.
Highlights — a coin shown as Sponsored on the crypto list — are bought on the website and paid through Stripe. Your card or bank details go to Stripe on Stripe's own payment page and never reach us. For each purchase we keep: the account email, the coin, the plan (24 hours or monthly), the tagline you wrote, the amount, the dates it runs, whether it renews, its status, and Stripe's reference numbers for the payment and any subscription. The admin who moderates highlights can see the buyer's email beside each listing, so that a problem can be raised with the person responsible for it.
Stripe processes the payment under its own privacy policy, which covers what it collects to take the payment, prevent fraud and meet its legal obligations.
Pro is an optional subscription for your account. In the Android app it is bought through Google Play, on the website through Stripe. Your card or bank details go to Google or Stripe and never reach us.
For each subscription we keep: which account it belongs to, where it was bought (Google Play, the website, or granted by us), the plan, its status, when the paid period ends, whether it renews, and the store's reference for it — a Google Play purchase token, or Stripe's subscription and customer identifiers. For a Google Play purchase, our server asks Google's Play Developer API whether the purchase is genuine and current, and tells Google it has been granted; Google answers with the subscription's state and expiry and its own order number, which we store. We never receive your Google account details, name or payment method from Google.
The Daily Brief. If you are Pro, Luna writes you one briefing a day. To write it, we send OpenAI a snapshot of the market and the same portfolio and watchlist summary described above under Luna (holdings, their share of the portfolio and their day's change, the biggest movers on your watchlist, how many alerts you have set), with the same store: false request and the same hashed identifier instead of your email or account ID. The finished text of each day's brief is stored on our server against your account, so it can be shown again that day and pushed to your phone, and is deleted with your account. The brief is written either when you open it, or by a morning sweep at eight in your local time; for that, the app syncs your device's time-zone offset (a number of minutes) with your other preferences.
Google processes Play purchases under the Google Privacy Policy and the Google Play Terms of Service; Stripe under its privacy policy.
Signing in issues a signed session token valid for 60 days. On mobile it is kept in the operating system's secure keystore (Android Keystore / iOS Keychain). On the web it is kept in your browser's local storage. Signing out deletes it.
If you choose "Continue with Google", Google returns an identity token to the app, which our server verifies with Google. From that token we store your Google account identifier, your email address and your name — nothing else. We never receive your Google password, and we request no access to your Gmail, Drive, contacts, calendar or any other Google service.
Google's own handling of that sign-in is governed by the Google Privacy Policy.
Most of what the app does is arithmetic on data it already holds, which is why it works offline. A few features cannot answer you without asking something of our server or another service. This is the complete list.
A closed phone cannot watch a price, so the server does it instead. If you allow notifications, Google’s Firebase Cloud Messaging issues a token identifying that install, which we store against your account and use only to deliver the alerts you set. Your alerts are read from the synced document you already gave us; nothing extra is collected. Signing out unregisters the device, and deleting the account removes the token with everything else. Decline the permission and alerts still fire — they just appear only while the app is open.
The portfolio can read a public blockchain address so you do not have to type holdings in by hand. It is read-only by construction. The app has no field for a private key, a seed phrase or a passphrase, never asks for one, and cannot move funds under any circumstance. If anything ever asks you for a seed phrase in our name, it is not us.
The address itself — which is public information, published by the chain — is sent to our server, which asks public block explorers for its balances and holds the answer for about a minute so a refresh does not ask twice. We do not write the address to our database. The explorers see our server rather than you. If you are signed in, the addresses you follow travel in your synced document like any other entry you made, and are deleted with the account.
Our server asks YouTube for the most-watched videos about that asset and caches the answer for a day, so YouTube is told the name of the asset by us, not by you, and receives nothing that identifies you. Two things are direct, however: the thumbnails load from Google’s image host (i.ytimg.com), and tapping a video opens YouTube itself. Both expose your IP address to Google the way any web request does, and from the moment a video opens, Google’s privacy policy applies rather than ours.
Both draw the coins you starred, so they ask our API for the prices of exactly that list of coin identifiers. No account, no device identifier and nothing else is sent, and they work whether or not you have an account.
The file is read entirely on your device and only the rows you confirm become transactions. The file is never uploaded to us, and we never see it.
Our API keeps the IP address of incoming requests in server memory for ten minutes, solely to enforce rate limits and resist abuse. It is never written to the database, never associated with your account, and is discarded when the window passes or the server restarts.
Price, chart and market data is fetched by our own server from public market data providers, and your app talks only to our server. Those providers therefore see our server, not you, and receive nothing that identifies you.
Current upstream sources include CoinGecko, CoinPaprika, Binance, Kraken, Bitfinex, alternative.me (the Fear & Greed index), gold-api.com and Yahoo Finance. Balances for a wallet address you follow come from public block explorers — mempool.space, Blockstream, Blockscout and the public Solana RPC — and the videos on an asset page come from YouTube. All of them are asked by our server, not by your device.
One exception worth naming: coin and asset logos are loaded by your device directly from CoinGecko's image host (coin-images.coingecko.com). Your device therefore makes a direct connection to that host, which — like any web request — exposes your IP address to it.
The same applies when you tap an exchange on a coin's page. That link opens the exchange's own site directly, so from that moment they see your IP address and apply their own privacy policy and cookies, not ours. We are not told that you tapped it and receive nothing if you trade there.
| Provider | Role |
|---|---|
| Railway | Hosts our API and the PostgreSQL database holding accounts and synced data. |
| Cloudflare | Hosts and serves the website (Cloudflare Pages) and provides DNS and TLS. |
| Verifies Google Sign-In tokens, if you use that option. Firebase Cloud Messaging delivers alerts to a closed phone, if you allow notifications. YouTube answers the video list on an asset page, and serves its thumbnails to your device directly. | |
| OpenAI | Generates Luna's answers from your message, your portfolio summary and the market, and the Daily Brief for Pro members from the portfolio summary and the market. Only if you use Luna or are Pro. |
| Stripe | Takes payment for Highlights, and for OpenCoinCap Pro bought on the website, on its own checkout page, and runs the renewals. Only if you buy one. |
| Google Play | Sells and bills OpenCoinCap Pro in the Android app, and confirms purchases to our server through the Play Developer API. Only if you subscribe in the app. |
| Apple & Google Play | Distribute the mobile apps. Their own download and crash reporting is governed by their policies, not ours. |
Account data is kept for as long as the account exists, and no longer.
You can delete your account from inside the app at any time: Account → Delete account. This removes your account row and, by database cascade, your entire synced document in the same operation. It is immediate and permanent — there is no soft delete, no grace period and no archived copy, so please export or note anything you want to keep first. Data already stored on your own device stays there and is yours to clear.
If you cannot reach the in-app control, email us and we will delete the account for you.
Records of highlights you bought are the one exception: they are kept after the account is gone for as long as tax, accounting and payment-dispute rules require — generally up to seven years — and are used for nothing else. Stripe keeps its own records of the payment under its policy. Our record of a Pro subscription, and your stored Daily Briefs, are deleted with the account; Google Play and Stripe keep their own records of what you paid them, under their policies, and deleting your account does not cancel a Google Play subscription — cancel it in Google Play first.
All traffic runs over HTTPS. Passwords are stored only as bcrypt hashes. Session tokens are signed and expire. The database is not publicly reachable. No system is perfectly secure and we cannot guarantee absolute security, but we collect as little as possible precisely so that there is little to lose.
Depending on where you live, you may have rights to access, correct, export or erase your personal data, and to object to or restrict its processing. Because we hold so little, most of these are available directly in the app: your data is visible in the app itself, editable there, and deletable there. For anything else, email us and we will respond.
OpenCoinCap is not directed at children and we do not knowingly collect personal data from anyone under 13, or under the minimum age of digital consent where that age is higher. If you believe a child has created an account, contact us and we will delete it.
If this policy changes we will update the date at the top of this page. Material changes will also be noted in the app.
Privacy and data requests
[email protected]
Use that address to ask what we hold about you, to get a copy, to correct it, or to have it deleted. Say which email your account uses so it can be found. Requests are answered within 30 days, and account deletion is immediate and permanent — we keep no backup copy to restore from.