Multi-chain wallet built for privacy. With New identity, Swap, send, & Connect. With ZERO footprint.
Veil is a browser extension wallet focused on privacy and multi-chain use. It lets you create and switch between multiple addresses so you can keep activity separate when you want.
The wallet supports Ethereum, Avalanche, Arbitrum, and Solana (one network at a time).
You can swap and bridge across the three EVM chains from inside the extension, send native tokens (ETH, AVAX, SOL) to any address, and connect to dApps via a Solana provider and an EIP-1193 Ethereum provider.
ENS (Ethereum Name Service) is supported, so you can use and resolve human-readable names on supported EVM chains.
On Solana, Privacy Cash mode adds deposit, withdraw, and private transfer flows. Keys are stored encrypted in the extension; you can export a private key per address.
The goal is to make it easy to use different identities and chains without tying everything to a single account.
Architecture
Veil is a Chrome extension built with a modern web3-focused stack:
Extension Structure
Background Script Handles long-lived logic, messaging, and state coordination.
Content Script Injects wallet providers into webpages and enables dApps to detect Veil as an injectable wallet.
Popup App Main wallet interface (Home, Settings, History, etc.) and manages approvals, signing prompts, and user interactions.
EVM Networks (Ethereum, Avalanche, Arbitrum)
Core Stack
Key Management
ENS (Ethereum Name Service)
RPC Resilience
Swap & Bridge (LI.FI — REST Only)
Veil integrates LI.FI via REST APIs (no SDK):
Flow: Request route/quote → iterate route steps → fetch transaction payload → sign with ethers → send transactions sequentially.
Why REST only: Smaller bundle size, full control over approvals and errors, no Node-only dependencies.
Solana Integration
Core Stack
Key Strategy
Private Transfers
Provider Injection
Partner Technology
LI.FI Veil uses LI.FI strictly via REST:
Data sent: fromChainId, toChainId, token addresses, amount, user wallet address. Multi-step routes execute sequentially after confirmation of each transaction.
ENS (Ethereum Name Service)
Notable Design Decisions

