Effective date: 2026-07-29
Version: 1.0
Applies to: the coinwise Android application (package net.ntrapp.coinwise), distributed via Google Play and as a sideloadable APK from GitHub Releases.
1. Summary
coinwise is an offline-first expense tracker. It has no user accounts, no backend server and no analytics.
- Everything you enter - transactions, categories, buckets, recurring rules, settings - is stored in a local SQLite database on your device only.
- The developer of coinwise receives no data from the app whatsoever. There is no server to receive it.
- The app makes exactly two categories of network request: a daily exchange-rate lookup, and - only if you switch it on - a backup upload to your own Google Drive.
- There is no advertising, no tracking, no advertising identifier, no crash reporting, no telemetry, no location access and no artificial-intelligence processing of your data.
The remainder of this policy sets out the detail required under the EU/EEA General Data Protection Regulation (GDPR) and the Swiss Federal Act on Data Protection (FADP).
2. Controller and contact
| Controller | Niklas Trapp |
| niklas031712@gmail.com | |
| Postal address | As stated in the Impressum: https://coinwise.ntrapp.net/impressum |
For any question about this policy, or to exercise the rights described in §11, contact the address above. A response will be provided within one month of receipt, extendable by up to two further months where the request is complex or numerous, in accordance with Art. 12(3) GDPR.
No Data Protection Officer has been appointed. The developer is not a public authority, does not carry out large-scale systematic monitoring of data subjects, and does not process special categories of data on a large scale, so the conditions in Art. 37(1) GDPR are not met. All enquiries are handled by the controller directly at the address above.
3. Scope and the limits of the controller’s role
The great majority of the processing that takes place when you use coinwise happens exclusively within the application on your device, under your sole control. The developer has no technical means of accessing, reading, copying or recovering that data, and receives no copy of it.
This policy describes:
- what the application stores on your device (§4);
- the limited circumstances in which the application transmits data to a third party, and what that third party receives (§5);
- the processing for which the developer acts as controller, which is confined to correspondence you voluntarily initiate (§6).
4. Data stored on your device
The application stores the following locally, in an SQLite database within the app’s private storage sandbox, and in a local key-value preference store:
Financial and organisational records you create
- Transaction amounts, currencies, exchange-rate snapshots, original amounts and original currencies
- Transaction titles, categories, notes, dates and creation timestamps
- Categories (label, glyph, colour), including any you create
- Buckets (name, glyph, date range, inclusion setting) and their linked transactions
- Recurring rules (title, amount, cadence, next occurrence, reminder lead time, pause state)
Preferences and configuration
- A display name, optionally entered during onboarding. This is a free-text field: it is not validated, not verified against any external source, and need not be your real name. It is used solely to address you within the application interface and in local notifications generated on your device.
- Default currency, month start day, appearance (light/dark/system), language
- Feature toggles: reminders, privacy lock, automatic backup, include-future-in-balance
- Which bucket each home-screen widget is bound to
- Cached exchange rates and the timestamp of the last fetch
- Onboarding completion state and the timestamp of the last backup
Google account details, only if you enable backup
- The email address of the Google account you connect
- Your Google display name, profile picture URL and Google account identifier, where returned by Google as part of the sign-in response
- The OAuth access and refresh tokens issued for that account
These are received from Google during sign-in, stored in the application’s private storage on your device, and used to display which account is connected and to authenticate backup requests. They are transmitted to no one. They are erased when you disconnect the account, erase all data, or uninstall the application.
None of the data listed in this section is transmitted anywhere by default. It is removed when you uninstall the application, or when you use Settings → Data → Erase all data.
Android’s own system backup and device-transfer mechanisms may include app data as part of your device backup. That behaviour is governed by Google’s privacy policy and your device settings, not by the developer.
4.1 Free-text fields and sensitive information
Transaction titles, notes, category labels and bucket names accept text of your choosing. The application does not inspect, parse, classify or restrict what you enter, and applies no artificial-intelligence or pattern-matching analysis to it.
You should be aware that the ordinary use of an expense tracker can produce records that reveal information falling within the special categories of Art. 9(1) GDPR - for example, spending on medication or medical treatment may reveal data concerning health, and donations may reveal political opinions, religious beliefs or trade union membership.
The developer neither receives nor processes this information in any form. It remains under your control on your device. Two consequences follow, which you should weigh:
- If you enable Google Drive backup (§5.2), such records are included in the archive uploaded to your Google Drive. You consent to that transfer by enabling the feature, and you can avoid it by leaving backup disabled.
- If you export an archive (§13), such records are contained in it in unencrypted plain text.
If you would prefer not to create records of this kind at all, you can leave titles and notes empty; the application requires only an amount and a category.
5. Network transmissions
5.1 Exchange rates
To convert amounts entered in a currency other than your main currency, the application requests published reference rates from the Frankfurter API (frankfurter.dev), at most once per calendar day, and caches the result on the device.
- Sent: an ordinary HTTPS request for a rate table. No transaction data, no amounts, no identifiers and no personal information about you are included in the request.
- Necessarily observable by the API operator: your device’s IP address and the time of the request, as with any internet request. The operator’s handling of that data is outside the developer’s control.
- Legal basis: Art. 6(1)(b) GDPR - performance of the service you have requested; Art. 31(1) FADP - processing necessary for the performance of a contract.
If you never use a secondary currency, this request still occurs to keep the cache warm. It can be avoided entirely by denying the application network access at the operating-system level; multi-currency conversion will then use the last cached rates.
5.2 Google Drive backup and restore - optional, off by default
If, and only if, you enable backup in Settings → Sync, the following occurs:
Authentication. You sign in with a Google account using Google Sign-In. Google returns to the application a set of account details - your email address, and depending on the account, your display name, profile picture URL and Google account identifier - together with OAuth tokens scoped to the permissions you grant.
The application receives these details on your device and stores them there. Your email address is displayed in Settings so that you can see which account backups are being written to, and the tokens are used to authenticate requests to Google’s Drive API. None of it is transmitted to the developer, who operates no server capable of receiving it, and none of it is transmitted to any third party other than Google itself, which is its source.
You can remove all of it at any time by disconnecting the account in Settings → Sync.
Upload. The application creates a ZIP archive containing one CSV file per database table plus a metadata file - that is, a complete copy of the data listed in §4 - and uploads it to the appDataFolder of your Google Drive. This is a hidden, application-scoped folder:
- It is invisible in the Google Drive user interface.
- It is accessible only to the coinwise application on devices where you have signed in.
- It is not accessible to the developer. The developer holds no credentials for your Drive and operates no infrastructure that touches it.
Frequency and retention. Automatic backups run at most once every 24 hours. The three most recent archives are retained; older ones are deleted by the application.
Recipient. Google LLC / Google Ireland Limited, acting as the provider of storage to you under your own Google account and its own privacy policy and terms.
Legal basis: Art. 6(1)(a) GDPR - your consent, given by enabling the feature and completing the Google consent screen. You may withdraw it at any time by disconnecting the account or disabling automatic backup in Settings, which does not affect the lawfulness of processing carried out beforehand. Under the FADP, the corresponding basis is your consent under Art. 6(6) FADP.
Deletion. Disconnecting your account stops further uploads. Archives already stored remain in your Drive until deleted; you can remove them via the in-app controls or by revoking coinwise’s access at myaccount.google.com/permissions, which causes Google to delete the associated appDataFolder contents.
Compliance with Google API Services User Data Policy. coinwise’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically, data obtained through the drive.appdata scope is used solely to create, upload, list, restore and delete the user’s own coinwise backup archives. It is not transferred to any third party, is not used for advertising or any advertising-related purpose, is not used to build user profiles, is not sold, and is not read by humans except with the user’s explicit consent for a specific support request, or where required by law, or as necessary for security purposes.
5.3 Distribution and platform services
The application is distributed through Google Play and as an APK from GitHub Releases. Downloading, installing and updating via those channels involves processing by Google and by GitHub, Inc. respectively, under their own policies. The application contains no advertising SDK, no analytics SDK, no crash-reporting SDK and no over-the-air update mechanism.
6. Correspondence
If you contact the developer by email - for support, or to exercise a right under §11 - the developer will process your email address and the content of your message in order to respond.
- Legal basis: Art. 6(1)(f) GDPR - the legitimate interest in responding to enquiries about the application; and Art. 6(1)(c) GDPR where a response is legally required.
- Retention: for as long as necessary to handle the matter and to evidence compliance, and no longer than 24 months from the last message, unless a longer period is required by law.
- Processor: the email service used to receive that correspondence.
7. Device permissions
| Permission | Purpose | Data leaving the device |
|---|---|---|
| Internet | Exchange-rate lookup; Google Drive backup if enabled | See §5 |
| Biometric / device credential | Optional privacy lock over the application | None. Biometric templates are held by Android in secure hardware and are never exposed to, read by or transmitted from the application. The application receives only a success/failure result. |
| Notifications | Local reminders about upcoming recurring entries and occasional logging nudges | None. All notifications are scheduled and delivered on-device. No push service is used. |
| Storage / file access | Writing an export archive; reading an archive you choose to import | Only where you actively choose an export destination |
The application does not request location, contacts, camera, microphone, call logs, SMS, or the advertising identifier.
A note on notifications. Local notifications may include your display name and the title of an upcoming recurring entry. Depending on your Android settings, notification content can appear on the lock screen and therefore be visible to anyone with physical access to your device. You can suppress this in Android’s notification settings for coinwise, or disable reminders entirely in Settings → App.
8. What the application does not do
For the avoidance of doubt, coinwise does not:
- create user accounts or require registration;
- transmit your financial data, your email address or any other personal data to the developer, or to any analytics, advertising or profiling service;
- display advertising or share data for cross-context behavioural advertising;
- read, categorise or process your data using artificial intelligence or machine learning;
- carry out automated decision-making or profiling producing legal or similarly significant effects within the meaning of Art. 22 GDPR;
- collect precise or coarse location data;
- use cookies or comparable browser-based tracking technologies;
- sell or rent personal data. No sale of personal data has occurred and none is contemplated.
9. Retention
| Category | Retention |
|---|---|
| Data on your device (§4) | Until you delete it in the application or uninstall the application. Under your control at all times. |
| Google account details and OAuth tokens | Held on your device only, until you disconnect the account, erase all data, or uninstall. Not held by the developer at any point. |
| Google Drive archives (§5.2) | Three most recent archives; older ones deleted automatically. Removed entirely when you revoke access or delete them. |
| Correspondence (§6) | Up to 24 months from the last message, unless a longer statutory period applies. |
| Exchange-rate cache | Overwritten on each successful fetch; cleared on uninstall. |
The developer holds no other personal data and therefore has nothing further to retain or erase.
10. International transfers
The developer transfers no personal data internationally, because the developer receives none.
Where you enable Google Drive backup, data is transmitted to Google’s infrastructure, which may include servers outside the EEA and outside Switzerland. Google Ireland Limited and Google LLC rely on the European Commission’s adequacy decision for the EU–US Data Privacy Framework and on the European Commission’s Standard Contractual Clauses, as set out in their own documentation. That transfer occurs under your own Google account, on the basis of your consent within the meaning of Art. 49(1)(a) GDPR and Art. 17(1)(a) FADP.
Requests to the Frankfurter API expose your IP address to that service’s hosting provider, which may be located outside the EEA.
Where transfers rely on Standard Contractual Clauses, you may request information about the safeguards applied by contacting the developer at the address in §2. The clauses themselves are published by the European Commission and by Google in its own transfer documentation.
11. Your rights
11.1 Under the GDPR (EU/EEA users)
You have the right to: access your personal data (Art. 15); obtain rectification of inaccurate data (Art. 16); obtain erasure (Art. 17); obtain restriction of processing (Art. 18); receive your data in a structured, commonly used and machine-readable format and have it transmitted to another controller (portability, Art. 20); object to processing based on legitimate interests (Art. 21); and withdraw consent at any time where processing is based on consent (Art. 7(3)).
A practical note on exercising these rights: because your data never leaves your device unless you choose to back it up, most of these rights are exercised directly in the application rather than by request.
- Access and portability - Settings → Data → Export produces a complete ZIP archive of every table in CSV form. This satisfies Art. 15 and Art. 20 in full and immediately.
- Rectification - edit or delete any transaction, category, bucket or rule directly.
- Erasure - Settings → Data → Erase all data, or uninstall the application. For Drive archives, disconnect the account and revoke access as described in §5.2.
- Withdrawal of consent - disable automatic backup and disconnect your Google account in Settings → Sync.
- Access, rectification or erasure of correspondence - contact the developer at the address in §2.
11.2 Under the FADP (Swiss users)
Swiss data subjects have equivalent rights under the revised Federal Act on Data Protection: the right to information (Art. 25), the right to data portability (Art. 28), and rights to rectification, erasure and objection. These are exercised in the same way as described above.
11.3 Complaints
If you consider that your rights have been infringed, you may lodge a complaint with a supervisory authority.
Germany. The competent supervisory authority for the developer is:
Der Landesbeauftragte für den Datenschutz und die Informationsfreiheit Baden-Württemberg (LfDI) Lautenschlagerstraße 20, 70173 Stuttgart, Germany baden-wuerttemberg.datenschutz.de
Elsewhere in the EU/EEA. You may instead complain to the supervisory authority of your own country of residence or place of the alleged infringement. Contact details for all authorities are listed at edpb.europa.eu.
Switzerland. The Federal Data Protection and Information Commissioner (FDPIC / EDÖB), edoeb.admin.ch.
You are encouraged, but not required, to raise the matter with the developer first.
11.4 Whether you are obliged to provide data
You are under no statutory or contractual obligation to provide any personal data in order to use coinwise. The application requires no registration, no account, no email address and no name; the display name requested during onboarding is optional and is used only to address you within the application. Declining to provide it has no consequence for functionality.
Enabling Google Drive backup requires signing in to a Google account, which entails Google providing the application with the account details described in §5.2. This is entirely optional. The application is fully functional without it, and declining has no effect other than that no off-device backup copy exists.
12. Children
coinwise is a general-audience utility. It is not directed at children, contains no content designed to appeal to children, and is not marketed to them. It is not intended for use by persons under 16 years of age, or under the higher age of digital consent applicable in your country.
Because the application collects nothing and transmits nothing to the developer, no personal information about a child can be collected by the developer through its use. If you are a parent or guardian and believe a child has sent personal information by contacting the developer directly, write to niklas031712@gmail.com and it will be deleted.
13. Security
- All data is held in the application’s private storage sandbox, which Android isolates from other applications.
- All network requests use HTTPS/TLS.
- An optional privacy lock gates the entire application behind your device’s biometric or PIN authentication, re-engaging whenever the application leaves the foreground, and additionally gates export, backup, restore and erase operations individually.
- Google account details and OAuth tokens are stored on-device in the application’s private storage. Access can be revoked by you at any time via Settings → Sync or at myaccount.google.com/permissions.
- The minimum viable OAuth scope (
drive.appdata) is requested for Drive access, so the application cannot read the rest of your Drive.
Export archives are not encrypted. If you export a backup to a location outside the application, you are responsible for protecting that file; it contains your complete financial history in plain CSV. Because titles and notes are free-text, an export may contain more than transaction amounts - see §4.1.
No security measure is absolute, and no method of electronic storage or transmission can be guaranteed to be perfectly secure.
14. Personal data breach
The developer processes no personal data centrally and operates no database that could be breached. Should a breach nonetheless occur in respect of correspondence data, and should it present a risk to the rights and freedoms of data subjects, the competent supervisory authority will be notified within 72 hours of the developer becoming aware of it, in accordance with Art. 33 GDPR and Art. 24 FADP. Where the breach is likely to result in a high risk, affected individuals will be informed without undue delay in accordance with Art. 34 GDPR.
Vulnerabilities in the application itself may be reported to niklas031712@gmail.com.
15. Changes to this policy
This policy may be updated to reflect changes to the application or to legal requirements. The current version is always published at https://coinwise.ntrapp.net/privacy with an effective date and a version number at the top of the document.
Where a change materially alters how data is handled - in particular where it would introduce any new transmission of data - you will be informed within the application, and where processing relies on consent, fresh consent will be sought before the change takes effect. Previous versions are available on request.
16. Contact
Niklas Trapp
Email: niklas031712@gmail.com
Impressum: https://coinwise.ntrapp.net/impressum
This policy is published in English. Translations, where provided, are for convenience; in the event of a discrepancy the English version governs.
This policy relates to coinwise version 0.3.0 and later.