1. Who we are
Mudal is a free, open-source expense tracker maintained by Heshan Jayakody and the Mudal contributors. It is a modified version of PennyWise AI, published under the GNU AGPL-3.0. Because Mudal has no servers, we — the developers — never receive your data.
2. What data Mudal handles
All of the following is created and stored on your phone only:
- Bank SMS. Mudal reads messages from senders it recognises as banks and extracts the amount, merchant, date, account’s last four digits and balance. A message from an unknown sender that looks like a transaction is kept in a review list on your phone, so you can check it or report the format. Everything else is ignored. SMS text is never logged or uploaded.
- Transactions and settings. Accounts, transactions, categories, rules, budgets, goals, subscriptions, loans, receipt images you attach, and your app preferences.
- Optional API key. If you use the AI assistant, your Gemini API key is stored in the app’s private storage and sent only to Google.
3. Permissions
- SMS (read and receive) — to turn bank messages into transactions. Optional; you can add transactions by hand instead.
- Notifications — to tell you about new transactions and backups.
- Biometrics — only if you turn on App Lock.
- Internet — only for the optional features in section 4.
- Notification access (optional, off by default) — if you enable it, Mudal reads transaction notifications from bank apps you allow, the same way it reads SMS.
Mudal does not request your location, contacts, camera roll or phone identity, and it does not use an advertising ID.
4. When data leaves your phone
Mudal makes no network requests in the background on its own. The only connections are these, and each one needs you to turn it on or tap it:
| Feature | When | What is sent | To |
|---|---|---|---|
| Exchange rates | Only when you use more than one currency or turn on unified currency. | A standard request for the rates of a currency code such as LKR. No amounts, no identifiers. | open.er-api.com |
| AI assistant | Only after you add your own Google Gemini API key and start a chat. | Your question plus the transaction details needed to answer it (merchants, amounts, categories, dates). Sent directly to Google with your key. | generativelanguage.googleapis.com |
| Webhooks | Only if you set up a webhook yourself. | The transaction data you chose to send, to the address you entered. | Your own server |
| Reporting an unrecognised SMS | Only when you tap “Report format” or “Ask for help”. | Opens a pre-filled GitHub issue in your browser. Numbers, amounts, card and account numbers are masked on your phone first, and nothing is submitted until you review it and press submit. | github.com |
Those third parties have their own privacy policies — in particular Google’s, if you use the AI assistant. If you use none of these features, Mudal works completely offline.
5. What Mudal does not do
- No analytics, telemetry or crash reporting.
- No advertising, and no advertising ID.
- No accounts, sign-in or cloud sync.
- No selling, sharing or renting of data — we never have it to begin with.
- No in-app purchases or billing services.
6. Storage and security
Mudal’s database is encrypted with SQLCipher. The key is generated on your phone and protected by the Android Keystore, so the database cannot be read if it is copied off the device. Android cloud backup of the app is switched off. You can also lock the app with your fingerprint or PIN and hide it in the recent-apps switcher.
7. Backups and exports
Backups and CSV exports are only created when you ask for them, or on a schedule you set up, and are saved where you choose. These files are not encrypted and contain your transaction history, so store and share them carefully. Anything you copy to a cloud drive is covered by that service’s policy.
8. Keeping and deleting your data
Your data stays on your phone until you delete it. You can delete individual transactions in the app, reset the database, or uninstall Mudal, which removes everything it stored. Backup files you exported are yours to delete.
9. Children
Mudal is not aimed at children and collects no data from anyone, including children.
10. This website
This site is a static page hosted on GitHub Pages. It sets no cookies and loads no analytics, fonts or scripts from other services. GitHub, as the host, may keep standard server logs such as IP addresses; see GitHub’s privacy statement.
11. Changes
If this policy changes, the new version will be published here with a new effective date. The history of every change is public in the source repository.
12. Contact
Questions about privacy? Open an issue on GitHub. Please do not paste real SMS, account numbers or other personal details in a public issue.