Labels: Stellar Wave, stellar, feature, drips, help-wanted
Tier: M (2–4 days)
Type: feature
Context
The demo lets users send and receive but provides no view of what they've done. After a successful tx, the success card disappears and the user has only the explorer link they may or may not have clicked. We need a persistent "Activity" view per chain.
Stellar first; other chains as follow-ups.
Scope
- Add an
/activity route in the demo navigation (next to Send / Receive).
- Persist tx events to
localStorage per chain + per wallet address (key: wraith:activity:${chain}:${address}):
kind: "send" | "receive" | "withdraw" | "register-name"
chain: "stellar"
direction: "out" | "in"
amount, asset, counterparty (truncated stealth address or .wraith name)
txHash, timestamp, status (pending | confirmed | failed)
- Hooks: every successful tx submission writes an entry; on app load, poll Horizon for
pending entries to update their status.
- UI: reverse-chronological list with chain badge, kind icon, amount, counterparty, and a chevron to open details.
- Filter chips: by chain, by direction, by status.
- Empty state with a CTA to Send.
- "Clear history" with confirm — purges localStorage for this wallet + chain.
Constraints
- Don't show entries from other wallets on disconnect/reconnect-as-different-account.
- Don't leak stealth keys — never store derived private keys in localStorage.
- Size cap: keep the most recent 100 entries per chain + wallet.
Acceptance criteria
Why this matters
A user with no history view doesn't trust the app. A user with a history view trusts it instantly.
Labels:
Stellar Wave,stellar,feature,drips,help-wantedTier: M (2–4 days)
Type: feature
Context
The demo lets users send and receive but provides no view of what they've done. After a successful tx, the success card disappears and the user has only the explorer link they may or may not have clicked. We need a persistent "Activity" view per chain.
Stellar first; other chains as follow-ups.
Scope
/activityroute in the demo navigation (next to Send / Receive).localStorageper chain + per wallet address (key:wraith:activity:${chain}:${address}):kind:"send" | "receive" | "withdraw" | "register-name"chain:"stellar"direction:"out" | "in"amount,asset,counterparty(truncated stealth address or.wraithname)txHash,timestamp,status(pending|confirmed|failed)pendingentries to update their status.Constraints
Acceptance criteria
/activityroute with per-chain filtering.Why this matters
A user with no history view doesn't trust the app. A user with a history view trusts it instantly.