Overview

SOLAI is a non-custodial Solana browser wallet built as a Chrome Extension. It combines a clean, minimal UI with an AI-powered command interface, privacy-preserving stealth addresses, Ledger hardware wallet support, and programmable agent wallets — making on-chain actions as simple as typing a sentence, and enabling fully automated machine-to-machine payments.


Problem

Crypto wallets are built for power users. They expect you to understand gas fees, addresses, slippage, and transaction types. SOLAI removes that friction by wrapping everything in natural language and smart defaults — and goes a step further by letting AI agents pay on your behalf, within strict programmatic guardrails you define.


Tech Stack

Layer Technology
Runtime Chrome Extension (Manifest V3)
Frontend React 18 + TypeScript
Styling Tailwind CSS + Framer Motion
Blockchain Solana (@solana/web3.js)
Key Derivation BIP39 + BIP44 HD (ed25519-hd-key)
Cryptography TweetNaCl, AES-256-GCM (Web Crypto API)
Hardware Wallet Ledger via WebHID (@ledgerhq/hw-transport-webhid)
Swap Jupiter Aggregator API
AI OpenRouter API (model-agnostic)
Price Data CoinGecko API
Storage chrome.storage.local (encrypted) + chrome.storage.session (keys)
Build Vite

Architecture

Key Design Decisions

MV3 Service Worker statelessness — Chrome MV3 service workers can be killed and restarted at any time. All state that needs to survive (wallet sessions, pending sign requests, agent keypairs) lives in chrome.storage.session rather than in-memory, so it survives SW restarts automatically.

Per-install encrypted storage — Every value written to chrome.storage.local is AES-256-GCM encrypted with a random 256-bit key generated on first install. The key is unique per browser installation — the source code no longer contains a hardcoded key. Existing data is migrated transparently on first read.

Session keys — Decrypted keypairs are held only in chrome.storage.session with a 30-minute TTL. When the session expires or the user locks, keys are zeroed in memory and removed from session. The wallet auto-locks.

HD key namespace — One mnemonic, three isolated address spaces:

Index range Purpose
0 Main wallet
1 – 999 Stealth addresses
1000+ Agent wallets

Sign approval popup — All dApp signing requests (signMessage, signTransaction, signAndSendTransaction) open a dedicated confirmation popup. The extension never auto-signs for dApps. Agent wallets are the only exception — they sign automatically within guardrail limits enforced in the service worker.


Features

Core Wallet