# 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. ## Remote Git **Repository:** `https://git.kapuscinski.pl/p1otek/dione.git` Credentials are stored in `~/.config/opencode/.env`: ``` GIT_USERNAME=p1otek GIT_TOKEN= GIT_ADDRESS=https://git.kapuscinski.pl/ ``` All git push/pull commands must use these credentials — do **not** hardcode the token in scripts or commands. Use the token via environment variable `GIT_TOKEN` or via the remote URL (`https://p1otek:${GIT_TOKEN}@git.kapuscinski.pl/p1otek/dione.git`). ## 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 `