| # SolVox β Voice-First Private AI Wallet for Solana |
|
|
| <div align="center"> |
|
|
|  |
|  |
|  |
|  |
|
|
| **A fully offline, voice-controlled Solana wallet where AI drives every operation.** |
|
|
| *No cloud. No API keys. No data leaves your device. QVAC is the brain, not a wrapper.* |
|
|
| </div> |
|
|
| --- |
|
|
| ## Hackathon: Colosseum Frontier β Tether QVAC Track |
|
|
| **Listing:** [superteam.fun/earn/listing/tether-frontier-hackathon-track](https://superteam.fun/earn/listing/tether-frontier-hackathon-track) |
|
|
| SolVox integrates **all 6 QVAC addon packages** as load-bearing components of a production wallet. The LLM is an autonomous agent that decides which wallet tools to call. Embeddings power contact resolution and transaction search. OCR chains into LLM for document-to-payment extraction. Every voice command fires all 6 modules in a single pipeline. |
|
|
| --- |
|
|
| ## Pages (10 screens) |
|
|
| | # | Page | Description | QVAC Modules Used | |
| |---|---|---|---| |
| | 1 | **Dashboard** | Dark hero band with floating product-UI cards, sparkline charts, asset rows with mono prices, QVAC engine status | embed (RAG) | |
| | 2 | **Voice AI** | Hold-to-speak with waveform visualizer, AI agent chat with pipeline trace, suggestion chips | All 6: STT β NMT β LLM β EMB β NMT β TTS | |
| | 3 | **Send** | Token pill selector, amount input with % buttons, AI risk assessment card, confirmation flow | LLM (risk), EMB (patterns) | |
| | 4 | **Scan & Pay** | Drag-drop image upload β OCR text extraction β LLM payment parsing β auto-fill transaction | OCR β LLM | |
| | 5 | **Contacts** | Semantic contact book β add contacts with notes, resolve by name/description via embeddings | EMB (cosine similarity) | |
| | 6 | **Transactions** | History with semantic AI search, asset-row pattern, status badges | EMB (RAG search) | |
| | 7 | **Security** | Transaction limits, toggle switches, address whitelist, AI anomaly detection log | LLM (anomaly analysis) | |
| | 8 | **Settings** | Network selector, QVAC model list with sizes, about section, danger zone | β | |
| | 9 | **Lock Screen** | PIN dot visualization, biometric support, encrypted vault | β | |
| | 10 | **Onboarding** | Step indicator, wallet create/import, PIN setup with AES-256-GCM | β | |
|
|
| --- |
|
|
| ## Deep QVAC Integration (40% of judging) |
|
|
| This is NOT a wrapper. QVAC drives the wallet: |
|
|
| ### 1. Tool-Use Agent (`@qvac/llm-llamacpp`) |
| The LLM receives user commands and returns structured JSON with tool calls: |
| ``` |
| User: "Send 5 SOL to Alice" |
| β LLM reasons: need to resolve contact first |
| β Actions: [resolve_contact("Alice"), confirm_transaction(5, SOL, resolved_address)] |
| β User confirms β ai:executeConfirmed β transaction sent + auto-indexed |
| ``` |
|
|
| ### 2. Semantic Contact Book (`@qvac/embed-llamacpp`) |
| Contacts embedded with names + notes. "Send to my friend from the hackathon" resolves via cosine similarity β no exact match needed. |
|
|
| ### 3. AI Risk Assessment (`@qvac/llm-llamacpp` + `@qvac/embed-llamacpp`) |
| Before every transaction, the LLM analyzes spending patterns from the embedded transaction history and generates a scored risk assessment with natural language reasoning. |
|
|
| ### 4. Voice Pipeline (all 6 modules) |
| ``` |
| π€ Audio β @qvac/transcription-whispercpp β text |
| β @qvac/translation-nmtcpp β English (if non-English) |
| β @qvac/llm-llamacpp β agent reasoning + tool calls |
| β @qvac/embed-llamacpp β RAG context retrieval |
| β @qvac/translation-nmtcpp β user's language |
| β @qvac/tts-onnx β spoken response |
| ``` |
|
|
| ### 5. Document-to-Payment (`@qvac/ocr-onnx` β `@qvac/llm-llamacpp`) |
| Upload invoice β OCR extracts text β LLM parses amount, recipient, token, memo β auto-fills transaction form. |
|
|
| ### 6. Auto-Indexing RAG (`@qvac/embed-llamacpp`) |
| Every transaction auto-embeds on completion. The AI's knowledge grows with every interaction β entirely local. |
|
|
| --- |
|
|
| ## Security |
|
|
| - **OS keychain encryption** via Electron `safeStorage` + AES-256-GCM + PBKDF2 (600K iterations) |
| - **PIN + Touch ID** with 5-attempt lockout (15 min) |
| - **Transaction limits** β per-tx, daily volume, velocity, cooldown |
| - **Address whitelisting** β optional, restrict to approved addresses |
| - **AI anomaly detection** β LLM analyzes patterns, can block dangerous transactions |
| - **Process isolation** β `contextIsolation: true`, `sandbox: true`, `nodeIntegration: false` |
| - **CSP headers** block script injection, limit connections to Solana RPC only |
| - **Auto-lock** after 5 minutes idle |
| - **Zero key exposure** β private keys never cross IPC boundary |
|
|
| See [SECURITY.md](SECURITY.md) for full threat model. |
|
|
| --- |
|
|
| ## Design System |
|
|
| Coinbase-inspired institutional design: |
| - **Single accent color** β Coinbase Blue (#0052ff), used scarcely |
| - **White canvas** + hairline borders + dark hero bands |
| - **Pill geometry** β every CTA is rounded-pill (100px) |
| - **Inter** at weight 400 for display, **JetBrains Mono** for all numbers |
| - **96px section rhythm** β generous editorial pacing |
| - **Trading semantics** β green (#05b169) / red (#cf202f) for text only, never backgrounds |
|
|
| --- |
|
|
| ## Quick Start |
|
|
| ```bash |
| git clone https://github.com/muthuk1/solvox.git |
| cd solvox |
| npm install |
| chmod +x scripts/download-models.sh && ./scripts/download-models.sh |
| npm run dev |
| ``` |
|
|
| ### Models (~2.6 GB) |
| | Model | Package | Size | |
| |---|---|---| |
| | Llama 3.2 3B Instruct Q4_K_M | `@qvac/llm-llamacpp` | 2.0 GB | |
| | Nomic Embed Text v1.5 Q4_K_M | `@qvac/embed-llamacpp` | 260 MB | |
| | Whisper Base English | `@qvac/transcription-whispercpp` | 150 MB | |
| | Piper TTS Amy | `@qvac/tts-onnx` | 75 MB | |
| | OPUS MT ENβES | `@qvac/translation-nmtcpp` | 50 MB | |
| | PaddleOCR v4 | `@qvac/ocr-onnx` | 30 MB | |
|
|
| --- |
|
|
| ## Project Structure |
|
|
| ``` |
| solvox/ |
| βββ src/ |
| β βββ main/ # Electron main process |
| β β βββ main.ts # Window, CSP, IPC handlers, agent execution |
| β β βββ preload.ts # contextBridge β allowlisted IPC channels |
| β β βββ ai/qvacEngine.ts # QVAC deep integration (33KB) β agent, RAG, risk, OCR pipeline |
| β β βββ wallet/walletService.ts # Solana wallet (BIP39, SOL, USDT) |
| β β βββ security/ # KeyVault, SecurityManager, TransactionGuard |
| β β |
| β βββ renderer/ # React UI (Coinbase design) |
| β βββ App.tsx # Router, toast system, auth flow |
| β βββ types.ts # Preload bridge types (verified match) |
| β βββ components/ |
| β β βββ Sidebar.tsx # 8-item nav, QVAC badge |
| β β βββ TopBar.tsx # Address pill, mono balances |
| β β βββ ui/index.tsx # Toast, Num, AssetRow, Sparkline, PipelineTrace, StepIndicator |
| β βββ pages/ |
| β βββ Dashboard.tsx # Dark hero, sparklines, AI status |
| β βββ VoicePage.tsx # Voice agent + chat + pipeline trace |
| β βββ SendPage.tsx # Send with AI risk assessment |
| β βββ ScanPage.tsx # OCR β LLM payment extraction (NEW) |
| β βββ ContactsPage.tsx # Semantic contact book (NEW) |
| β βββ HistoryPage.tsx # Transactions + RAG search |
| β βββ SecurityPage.tsx # Limits, toggles, whitelist, anomaly log |
| β βββ SettingsPage.tsx # Network, models, about |
| β βββ LockScreen.tsx # PIN dots, biometric |
| β βββ OnboardingScreen.tsx # Create/import, PIN setup |
| β |
| βββ models/ # AI models (~2.6 GB, downloaded locally) |
| βββ scripts/download-models.sh # Model download script |
| βββ SECURITY.md # Full threat model |
| βββ package.json |
| ``` |
|
|
| **TypeScript: 0 errors** (verified with `tsc --noEmit`) |
|
|
| --- |
|
|
| ## Tech Stack |
|
|
| | Layer | Technology | |
| |---|---| |
| | App Shell | Electron 30 | |
| | Frontend | React 18 + TypeScript + TailwindCSS | |
| | Design | Coinbase design system (Inter + JetBrains Mono) | |
| | AI Runtime | QVAC SDK (all 6 addons) | |
| | GPU | Vulkan API (any GPU β no CUDA) | |
| | Blockchain | Solana (@solana/web3.js + @solana/spl-token) | |
| | Encryption | safeStorage + AES-256-GCM + PBKDF2 | |
| | Build | Vite 5 + electron-builder | |
|
|
| --- |
|
|
| ## License |
|
|
| MIT β see [LICENSE](LICENSE). |
|
|
| --- |
|
|
| <div align="center"> |
|
|
| **Built for Colosseum Frontier Hackathon β Tether QVAC Track** |
|
|
| *QVAC is the brain. Not the wrapper.* |
|
|
| </div> |
|
|