Now live on Google Play · WalletFlow v1.0 — free, no account required
Offline-first · Android · Material 3

Every rupee,
accounted for.
Not just tracked.

Most expense apps log what you spent and quietly forget where it came from. WalletFlow ties every transaction to a real account — type it, share a bank SMS, or let a recurring bill post itself — so the balance you see is exact. Down to the paise.

No login No cloud SMS quick-add
★★★★★ Integer minor-unit math · balances that never drift
balance derived · live
on-device only
The flaw we fix

A tracker that can't tell you what you have isn't a ledger — it's a diary.

✕ Typical expense app

Records the spend. Forgets the source.

You log ₹412 on dinner and ₹1,200 on groceries. The app tallies "you spent ₹1,612" — but it never subtracted that from your bank, your cash, or anywhere. Ask "how much do I have left?" and it has no honest answer.

₹ ?balance unknown — money was never placed in an account
✓ WalletFlow ledger

Every rupee lives in a real account.

An expense reduces its account; income increases it. A transfer just moves money between two — and never pretends to be income. Balances are derived from transactions in SQL, never edited by hand.

Opening · ICICI Bank₹20,000.00
− Groceries₹1,200.00
− Dinner₹412.00
− Auto-debit (rent share)₹237.00
Closing balance₹18,151.00
Try it · the BalanceEngine

Watch the rules actually hold.

This is the same pure logic that ships in the app and passes its test suite — Bank ₹20,000 dropping to ₹18,151 after three expenses, transfers moving money without touching income or expense totals.

Pick an amount, then apply a move. Balances update to the paise.
Bank
₹20,000.00
Wallet
₹2,000.00
Month income₹0.00
Month expense₹0.00
Everything in the wallet

A complete ledger, not a notepad with a calculator.

Reports that answer back

Period presets or a custom range. A spending trend switchable between line, bar and calendar heatmap — axis labels on both sides, tap any point for the exact date and amount, with a Total / Daily-average / Highest-day strip below.

〜 Line▥ Bar▦ Heatmap
₹12,010.00Total
₹857.85Daily avg
₹8,500.00Highest day

Add from a shared SMS

Long-press a bank or UPI message, share it to WalletFlow. The parser prefills amount, direction, payee and date — the original text lands in Notes. No SMS permission; you initiate every share.

"₹650.00 debited from ICICI a/c ••4821 to UDEMY *MUM…"
−₹650.00 · expenseUdemy · ICICI ··4821today → editable
↻ click to replay

Accounts that look like cards

Gradient, embossed chip, masked digits, contactless mark for banks — a UPI-style QR glyph for wallets & cash.

•••• •••• •••• 4821ICICI₹39,290.00

A widget for every size

Resizable from a tiny corner tile to a large card — five size-aware layouts, today's net in green/red, refresh + quick-add.

−₹650
Today · −₹650.00
↻  +
Food 38%
Rent 26%
Transit 18%
1×1 · corner tile

Categories, two levels deep

Groups with subcategories — Income → Salary / Bonus / Interest, Subscription → Mobile / TV / Internet. Browse a curated catalog of 30+ groups and ~190 presets; add a whole group in one tap, or fully custom ones. Every category editable, deletable, regroupable.

Food ▾GroceriesDining outSwiggy Subscription ▾MobileOTT Income ▾SalarySIP return

Budgets that roll up

Monthly + per-category. A group budget counts its subcategories' spend too. 80 / 90 / 100% colors, a strong highlight when reached, and an in-app alert the moment you cross.

Food (all subs)₹3,180 / ₹3,500

Your look, your rules

Light / dark / system, six accents, true-black AMOLED mode, and a frosted-glass Total Assets card on the dashboard. Currency picker shows real symbols.

AMOLEDGlass
TOTAL ASSETS₹40,740.00

Biometric lock

Fingerprint / face gate over the whole app. Re-engages off-foreground; refuses to enable without a device credential.

Re-locks every time
you leave the app

Recurring, month-end safe

Daily to yearly. Jan 31 monthly lands on Feb 28 — never Mar 3. Posts silently even if the app was closed, catching up missed periods.

Backups & statements

Export everything to CSV or a real hand-rolled .xlsx and restore on any device. Or generate a polished shareable PDF statement — opening/closing balance, summary, full paginated table — via Android's own PdfDocument.

backup.xlsxstatement_ICICI_Jul.pdfrestore · matched by name

Goals that celebrate

A target for an account to reach; progress is its live balance. A one-time celebratory notification the first time you hit it.

Emergency fund72%

Trash, not gone

Soft-delete with restore and delete-forever; auto-purge after 7 days. Receipt photos cleaned up automatically too.

restoredelete forever7-day auto-purgereceipts cleaned
The promise

No account. No login.
No network. Ever.

Every rupee lives on the device in Room + DataStore. There is no server to leak, no analytics to opt out of, no email to remember. WalletFlow works in a tunnel, on a flight, in a basement — and the balance is still exact, because money is stored as integer paise, never floats.

📴

Offline-first

The database is the source of truth — not a sync queue. Fully local, fully yours, on Android 9.0+ (SDK 28 → 37).

🧮

Exact by design

Integer minor-unit math end to end. ₹20,000 minus three expenses is exactly ₹19,151.00 — the test suite says so.

🔏

Yours to take

CSV or .xlsx export any time, restore on a new device. No lock-in, no subscription wall, no dark patterns.

Straight from the build

The real screens. Ledger ink & gold.

0
preset subcategories
0
category groups
0
widget layouts
0
servers contacted
Questions

Good to know before you install.

The whole architecture is documented in the project README — Kotlin, Compose, Room, Glance, androidx.biometric. No black boxes.

Stop guessing your balance.
Start knowing it.

Install WalletFlow, add your accounts, and watch every transaction land exactly where the money went. Free, offline, and entirely yours.

No account No tracking No cloud syc Android 9.0+