A local-first desktop crypto portfolio tracker built with Tauri 2. It aggregates EVM wallet balances across several chains, combines them with manually entered holdings, and shows totals and allocation charts. Data lives in a SQLite database on your machine.
Dashboard — totals, token/chain allocation, and holdings by source.
Assets — searchable token table with chain and wallet filters.
- Multi-wallet EVM tracking — Add multiple addresses; sync pulls token balances via Alchemy across enabled chains.
- Supported chains — Ethereum, Arbitrum, Optimism, Base, and Polygon (toggle per chain in Settings).
- USD pricing — Quotes from CoinMarketCap when an API key is set; sync can refresh prices without re-fetching on-chain balances.
- Dashboard — Total value, source/token/chain counts, token and chain pie charts, and a bar chart of value by wallet label.
- Assets & manual entries — Browse synced token lines; add off-chain or exchange-style positions under Manual so they roll into totals and charts.
- Analytics — Same allocation views plus quick stats (largest token, top chain, diversification summary).
- Privacy — Read-only: paste public addresses only; no private keys. No cloud account required for the app itself.
| Layer | Choice |
|---|---|
| Desktop shell | Tauri 2 (Rust) |
| UI | React 18, TypeScript, React Router |
| State | Zustand |
| Charts | ECharts (echarts-for-react) |
| Styling | Tailwind CSS |
| Local DB | SQLite via rusqlite |
| Provider | Role |
|---|---|
| Alchemy | Multi-chain JSON-RPC / token balances for your wallets |
| CoinMarketCap | USD (and related) quotes for tokens; optional API key in Settings |
- Node.js 18+
- Rust stable
- Tauri 2 prerequisites for your OS
npm installnpm run tauri devThis starts the Vite dev server and opens the native window.
npm run tauri build- Create an Alchemy app and copy an API key from dashboard.alchemy.com.
- (Recommended) Add a CoinMarketCap API key for reliable USD pricing.
- In the app, open Settings, paste the keys, choose refresh and small-balance options, and enable the chains you use.
- Add wallets under Wallets with optional labels.
- Use Sync on the Dashboard (full sync or “Sync prices only” from the split button menu).
MIT

