Android · On-device · Free forever

Your money's
whole story —
and it never
leaves your phone.

Alkemi captures every transaction from your bank SMS and notifications — parsed locally, stored on device, never uploaded.

INTERNETdenied TELEMETRYnone CLOUDdisabled

The status quo

Most finance apps
have a second job.

They upload your statements to the cloud, sync your data to third-party servers, and build a profile of your financial behaviour. You don't know where it goes or who sees it.

Your data leaves your device

Transaction history synced to remote servers you don't control.

Silent analytics

Behavioural tracking and ad profiling baked into "free" finance apps.

Manual entry, every time

No automatic capture from SMS or push notifications — you do all the work.

Features locked behind paywalls

Core functionality withheld until you subscribe — or the app shuts down.

How it works

Three steps.
No servers.

From the moment a transaction happens to the insight it produces — everything runs on your phone.

  1. Capture

    Alkemi reads your bank SMS and listens to push notifications from trusted apps — Google Pay, PhonePe, Paytm, and your bank's own app. Transactions are parsed locally using pattern matching across 50+ Indian bank formats. No text ever leaves the device.

  2. Understand

    Every transaction is categorised, deduplicated, and assigned to the right account. Budgets, weekly charts, category breakdowns, subscription detection, and spending insights surface automatically — all computed in-memory on your phone.

  3. Own

    Your data lives in an on-device SQLite database. When you back up, the file is encrypted with XChaCha20-Poly1305 + Argon2id before it's shared anywhere — you choose where it goes. Restore needs your password and nothing else.

Privacy by design

Not a promise.
A technical fact.

Privacy-first isn't a marketing claim — it's a constraint built into the architecture. These aren't policies that could change. They're properties of the code.

0 network calls
0 bytes uploaded
0 servers contacted
0 trackers or SDKs
On-device storage

SQLite. On your phone. That's it.

Every transaction, account balance, goal, and debt entry is stored in a local SQLite database — alkemi.db — that never touches a network.

engine: expo-sqlite (WAL mode)
FK enforcement: PRAGMA foreign_keys = ON
location: device app sandbox
Encrypted backups

Strong cryptography on every backup.

When you export a backup, the file is encrypted using XChaCha20-Poly1305 with a key derived by Argon2id (64 MB memory, random 16-byte salt) before your native share sheet opens.

cipher: XChaCha20-Poly1305 (IETF, 256-bit key)
kdf: Argon2id13 · 64 MiB · opslimit=2
library: react-native-libsodium
Access control

Lock it. Mask it. Your call.

Set a PIN or biometric lock per profile. Privacy Mode masks every balance and amount across all screens — useful on a commute or when sharing your screen.

Zero network activity

No internet permission requested for your data.

The Android manifest does not include INTERNET in the app's own permission set. No HTTP calls, no analytics SDKs, no telemetry anywhere in the codebase.

Granted
READ_SMS RECEIVE_SMS POST_NOTIFICATIONS FOREGROUND_SERVICE
Denied
ACCESS_FINE_LOCATION READ_CONTACTS CAMERA MICROPHONE

The app

Everything in one place.
Nothing sent anywhere.

A calm, focused interface that shows you what matters — built around the way money actually moves in India.

Alkemi home screen showing daily spending of 969 rupees and monthly budget
Home · Daily spend & budget
Alkemi analytics screen showing 21,053 rupees spent this month
Analytics · Spending breakdown
Alkemi plan screen showing savings goals and upcoming subscriptions
Plan · Goals & subscriptions

What's inside

Everything you actually need.
Nothing you don't.

Every feature listed here is present and working in the current build — verified from the source code, not a roadmap.

parser.ts · ExpenseOrchestrator.ts

Automatic capture — zero effort

The moment a bank SMS arrives or a payment notification fires, Alkemi parses it locally — no paste, no photo, no manual entry. 50+ Indian bank formats recognised, 30+ trusted payment apps listened to. Duplicate transactions are caught by content hash before they hit storage.

50+bank formats
30+payment apps
0manual entry

Notification listener

Captures confirmations from 30+ trusted apps — Google Pay, PhonePe, Paytm, BHIM — parsed and stored locally.

notificationListener.ts

Subscription detection

Scans 400 days of history to surface recurring charges. Detects cancellations. 88 known services catalogued.

SubscriptionDetectionService.ts

Multi-account + reconciliation

Bank accounts, cards, wallets, cash. Balance anchoring from SMS with drift detection. Transfers matched automatically.

ReconciliationOrchestrator.ts

Savings goals

Create goals with targets and deadlines. Log contributions, track progress. Full history stored locally.

GoalRepository.ts

Debt tracking

Log who owes whom, due dates, partial payments. See your net position. Reminders built in.

DebtRepository.ts

Budgets & insights

Monthly budget, daily safe-spend. Spending anomalies, top merchants, category trends — no cloud required.

insights.ts

CSV import & export

Export full transaction history. Import from CSV to migrate from another app. Your data, your format.

export.ts · import.ts

8 themes, 1 price

Light, Dark, Midnight, Ocean, Forest, Sunset, Rose, Aurora — all included, all free. No tiers, no unlocks.

src/theme/variants/

The difference

Different by design.

Most finance apps are optimised for engagement and data collection. Alkemi is optimised for one thing: your privacy and accurate control over your finances.

Feature
Typical apps
// alkemi
Data stays on your device
Synced to cloud
On-device only
Internet permission for financial data
Required
Not requested
Telemetry & analytics SDKs
Always present
Zero
Automatic SMS & notification capture
~ Varies
50+ bank formats
Encrypted local backups
Cloud-dependent
XChaCha20 + Argon2id
Truly free — no feature tiers
Freemium gates
Everything, free
Learns from your corrections
Static categories
Per-sender patterns
Ads or behavioural profiling
Common
None, ever

Common questions

Things people want to know.

Yes — and intentionally so. Android's SMS broadcast system and NotificationListenerService give apps genuine, real-time access to transaction data without manual input. iOS doesn't expose these APIs. Alkemi is built around Android's native architecture, not retrofitted on top of it.

Yes, entirely. Every feature — goals, debt tracking, analytics, encrypted backups, all 8 themes — is available to every user. There are no tiers, no limits, no "Pro" unlock. The business model isn't to monetise your data; it's to build something people love and support optionally.

Export an encrypted backup (.alkemi file) at any time and store it wherever you choose — Google Drive, a USB drive, your laptop. When you get a new phone, restore with your password. No account, no server, no waiting. The backup is yours.

READ_SMS lets Alkemi scan your existing inbox for historical transactions. RECEIVE_SMS handles real-time parsing when a new message arrives. The app reads the text on-device, extracts amount, merchant, and account, then discards the raw text. The Android manifest doesn't include an INTERNET permission, so transmission is architecturally impossible.

Soon. The app is in its final pre-launch phase — core features are complete, we're polishing reliability and onboarding. Join the waitlist and you'll get a single email when it's available on the Play Store. No newsletters, no drip campaigns.

Early access

Be the first to
track it, own it.

Alkemi is in its final stages before launch. Leave your email and you'll hear from us first — no spam, no drip campaigns, just a single note when the app is ready to download.

No spam. No marketing. Just a launch email.

You're on the list.

We'll send one email when Alkemi is ready to download.