Veil

Multi-chain wallet built for privacy. With New identity, Swap, send, & Connect. With ZERO footprint.

Veil

Created At

HackMoney 2026

Project Description

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.

How it's Made

Architecture

Veil is a Chrome extension built with a modern web3-focused stack:

  • Frontend: React 18 + TypeScript
  • Build Tooling: Vite (separate configs for popup and content scripts)
  • Styling: Tailwind CSS
  • Animations: Framer Motion
  • Icons: Lucide
  • Routing: React Router

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

  • ethers v6 for RPC communication, transaction signing, and broadcasting.

Key Management

  • Single encrypted BIP-39 seed phrase
  • HD derivation for EVM accounts
  • Stored securely in extension storage
  • Encrypted using the user's password

ENS (Ethereum Name Service)

  • ENS support on supported EVM chains for resolving and using human-readable names (e.g. name.eth).
  • Address resolution and reverse resolution integrated into send/receive and address display flows where applicable.

RPC Resilience

  • Centralized RPC Manager (ethRpcManager, dedicated paths for Arbitrum and Avalanche)
  • Automatic retries and provider failover.

Swap & Bridge (LI.FI — REST Only)

Veil integrates LI.FI via REST APIs (no SDK):

  • GET /quote — single-step swaps
  • POST /advanced/routes — cross-chain routes
  • POST /advanced/stepTransaction — transaction payloads

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

  • @solana/web3.js for RPC + transactions
  • tweetnacl and ed25519-hd-key for key derivation

Key Strategy

  • Same master seed as EVM; separate derivation paths and indices to avoid cross-network collisions.

Private Transfers

  • Optional privacy via Privacy Cash: deposit, withdraw, private send. Integrated into UI modals and balance logic.

Provider Injection

  • Content script injects EVM provider and Solana provider; dApps recognize Veil as an injectable wallet.
  • All actions gated through the extension: connection approval, signing confirmation, transaction review.

Partner Technology

LI.FI Veil uses LI.FI strictly via REST:

  • https://li.quest/v1/quote
  • /advanced/routes
  • /advanced/stepTransaction

Data sent: fromChainId, toChainId, token addresses, amount, user wallet address. Multi-step routes execute sequentially after confirmation of each transaction.

ENS (Ethereum Name Service)

  • Human-readable names (e.g. name.eth) on supported EVM chains.
  • Resolve names to addresses and reverse (address → primary name).
  • Integrated into send/receive and address display; reads from ENS contracts via RPC (no separate backend).

Notable Design Decisions

  • One Seed, Multiple Networks: Single encrypted seed powers EVM and Solana accounts with independent indices per chain.
  • RPC Reliability: Retry logic for balance fetches and transaction submission.
  • Fully Client-Side: No backend; only RPC nodes, LI.FI API, ENS (on-chain via RPC), Privacy Cash (Solana), and optional pricing/oracle endpoints. Keys, signing, and transaction building remain inside the extension.
background image mobile

Join the mailing list

Get the latest news and updates