SolVox β Voice-First Private AI Wallet for Solana
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.
Hackathon: Colosseum Frontier β Tether QVAC Track
Listing: 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 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
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.
Built for Colosseum Frontier Hackathon β Tether QVAC Track
QVAC is the brain. Not the wrapper.