--- id: TASK-118.4 title: Add multiplayer sync to rwallet (shared treasury view) status: Done assignee: [] created_date: '2026-03-16 00:05' updated_date: '2026-03-16 00:50' labels: - multiplayer - tier-2 milestone: Multiplayer Everything dependencies: [] parent_task_id: TASK-118 priority: medium --- ## Description rwallet currently renders client-side-only wallet data from Safe Global API. Add Automerge sync for shared watchlists and treasury annotations. ## New files: - `modules/rwallet/schemas.ts` — WalletDoc with watchedAddresses, annotations, dashboardConfig - `modules/rwallet/local-first-client.ts` — CRUD: addWatchAddress, setAnnotation, updateConfig ## Schema: ``` WalletDoc { meta: { module: 'wallet', collection: 'treasury', version: 1 } watchedAddresses: Record annotations: Record dashboardConfig: { defaultChain, displayCurrency, layout } } ``` ## Component updates (`folk-wallet-viewer.ts`): - Shared watchlist syncs across space members - Transaction annotations visible to all - Dashboard layout preferences synced ## Acceptance Criteria - [ ] #1 Watched wallet addresses sync across space members - [ ] #2 Transaction annotations visible to all space members - [ ] #3 Dashboard config shared (chain, currency, layout) - [ ] #4 Demo mode works with local-only state ## Implementation Notes schemas.ts + local-first-client.ts created