What already works
The Donor tab's Recent activity panel (analytics/walletTxHistory.js, 7-day window) already reports, split by received and sent:
- Node rewards, summed on their own
- Exchanges — P2P movements to and from known exchange addresses, labelled from a checked-in address book
- Flux Foundation
- Transfers — everything else
- Totals each way, plus a net figure for the window
An unknown counterparty is reported as unknown rather than guessed at, which is the right call: a wrong label is worse than no label.
The gap
App hosting payments are not a separate line. They currently appear under Flux Foundation.
This is deliberate and currently unavoidable. Flux app payments are paid to a Foundation address, so on chain they are indistinguishable from any other payment to the Foundation. There is no per-spec payment memo in the current app-spec version to tell them apart, so breaking them out would mean asserting something the chain does not actually say.
The existing code says as much in its header comment, and the panel's footnote tells the reader the same thing rather than quietly folding the two together.
What unblocks it
App spec v9 introduces a payment memo (see #206). Once deployments carry one, an app payment becomes distinguishable from a general Foundation transfer and can have its own line.
Proposed work, when that lands
- Read the payment memo on outgoing transactions to the Foundation address.
- Add an App deployments row to the sent side, alongside Exchanges / Foundation / Transfers.
- Keep the Foundation row for genuine non-app Foundation payments — do not simply relabel it, or every existing Foundation transfer silently becomes an "app payment".
- Extend
walletTxHistory.test.js with a memo-carrying transaction and one without, asserting the two land in different buckets.
- Update the panel footnote, which currently explains the limitation and would otherwise become wrong.
Do not do this before the memo exists
Any earlier attempt has to guess — by amount, by timing, or by assuming all Foundation payments are apps. All three would produce a confident wrong number in a panel whose whole purpose is an accurate account of where a donor's FLUX went.
What already works
The Donor tab's Recent activity panel (
analytics/walletTxHistory.js, 7-day window) already reports, split by received and sent:An unknown counterparty is reported as unknown rather than guessed at, which is the right call: a wrong label is worse than no label.
The gap
App hosting payments are not a separate line. They currently appear under Flux Foundation.
This is deliberate and currently unavoidable. Flux app payments are paid to a Foundation address, so on chain they are indistinguishable from any other payment to the Foundation. There is no per-spec payment memo in the current app-spec version to tell them apart, so breaking them out would mean asserting something the chain does not actually say.
The existing code says as much in its header comment, and the panel's footnote tells the reader the same thing rather than quietly folding the two together.
What unblocks it
App spec v9 introduces a payment memo (see #206). Once deployments carry one, an app payment becomes distinguishable from a general Foundation transfer and can have its own line.
Proposed work, when that lands
walletTxHistory.test.jswith a memo-carrying transaction and one without, asserting the two land in different buckets.Do not do this before the memo exists
Any earlier attempt has to guess — by amount, by timing, or by assuming all Foundation payments are apps. All three would produce a confident wrong number in a panel whose whole purpose is an accurate account of where a donor's FLUX went.