# cbBTC Treasury Dashboard **What it is:** A single-page HTML dashboard tracking cbBTC acquisition across wallets. No build step, no JS framework, no tests — just one `index.html` served by nginx. ## How to run ```bash docker build -t cbBTC-dashboard . && docker run -p 8080:80 cbBTC-dashboard ``` Or just open `index.html` in a browser (without the `/api/` proxy, only the Kraken BTC price chart will work). ## Architecture The codebase is split into three vanilla ESM modules plus the single-page dashboard: | Module | Purpose | |---|---| | `wallets.js` | **`WalletManager`** — localStorage state, chain-specific address validation, verification lifecycle | | `verifier.js` | **`WalletVerifier`** — EIP-712 typed-data signing via `window.ethereum`, user rejection handling | | `stream.js` | **`WalletStreamManager`** — single WebSocket with BroadcastChannel leader election, exponential backoff + jitter | ## File layout | File | Purpose | |---|---| | `index.html` | Dashboard UI. Embedded chart data, ApexCharts, TailwindCSS. Loads modules via `