Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

๐Ÿš€ Complete Web3 Wallet Browser Extension | EIP-1193 Compatible | Multi-Network Ethereum Wallet | MetaMask Alternative | ERC-20 Token Support | Secure DeFi Access | TypeScript + React

License

Notifications You must be signed in to change notification settings

cbs8710064/universal-web3-wallet

Repository files navigation

๐ŸŒ Universal Web3 Wallet

Universal Web3 Wallet Logo

License: MIT TypeScript React Chrome Extension EIP-1193 MetaMask

๐Ÿš€ The Complete Web3 Wallet Browser Extension - MetaMask Alternative with Advanced Features

Secure โ€ข Multi-Network โ€ข ERC-20 Ready โ€ข DeFi Optimized โ€ข Open Source

๐Ÿš€ Quick Install โ€ข โœจ Features โ€ข ๐Ÿ“– Docs โ€ข ๐Ÿค Contribute โ€ข ๐Ÿ” Security

โญ Star this repo | ๐Ÿด Fork & Contribute | ๐Ÿ“ข Share with Community


๐Ÿ“‹ Table of Contents

โœจ Features

Why Choose Universal Web3 Wallet? Built for the next generation of DeFi users who demand security, flexibility, and seamless multi-chain experiences.

๐Ÿ” Core Wallet Features

  • ๐Ÿ›ก๏ธ EIP-1193 Provider: Full compliance with Ethereum provider standard - works with ALL DApps
  • ๐Ÿ”‘ Mnemonic Support: BIP39 12-word mnemonic phrase generation and import with entropy validation
  • ๐Ÿ‘ฅ Multi-Account: HD wallet with hierarchical deterministic account generation (unlimited accounts)
  • ๐Ÿ“ฅ Account Import: Import accounts via private keys with security warnings
  • ๐Ÿ”’ Secure Storage: Military-grade AES encryption for keys and mnemonics - never leaves your device

๐ŸŒ Multi-Chain Network Support

  • ๐ŸŒ 15+ Networks: Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Fantom + more
  • โš™๏ธ Custom Networks: Add any EVM-compatible network with custom RPC endpoints
  • โšก Instant Switching: Seamless network switching with automatic balance updates
  • ๐ŸฆŠ MetaMask Compatible: Drop-in replacement - works with existing DApp integrations
  • ๐Ÿ”„ Auto-Detection: Automatically detects and suggests network additions from DApps

๐Ÿ’ฐ Token Management

  • ERC-20 Tokens: Add, remove, and manage custom tokens
  • Balance Tracking: Real-time balance updates every 6 seconds
  • Auto-refresh: Balance updates on account/network changes
  • Token Filtering: Hide/show zero-balance tokens

๐Ÿ”’ Transaction & Signing

  • Transaction Signing: Secure transaction signing with user confirmation
  • Message Signing: Support for personal_sign message signing
  • Typed Data: Full eth_signTypedData_v4 support
  • Confirmation UI: User-friendly transaction confirmation popups

๐ŸŽจ User Experience

  • Modern UI: Built with Ant Design for sleek interface
  • Multi-language: Support for English, Chinese, Korean, and Japanese
  • Lock/Unlock: Secure wallet state management
  • Address Book: Easy address management and copying

๐Ÿš€ Installation

Prerequisites

  • Node.js 16+ and npm
  • Chrome/Chromium browser
  • Git

Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/UniversalWeb3Wallet.git
    cd UniversalWeb3Wallet
  2. Install dependencies

    npm install
  3. Build the extension

    npm run build
  4. Load in Chrome

    • Open Chrome and navigate to chrome://extensions/
    • Enable "Developer mode"
    • Click "Load unpacked extension"
    • Select the dist folder from the project

Development Mode

# Start development server with hot reload
npm run dev

๐Ÿ—๏ธ Architecture

src/
โ”œโ”€โ”€ ๐Ÿ“‚ provider/
โ”‚ โ””โ”€โ”€ EthereumProvider.ts # EIP-1193 provider implementation
โ”œโ”€โ”€ ๐Ÿ“‚ wallet/
โ”‚ โ”œโ”€โ”€ WalletManager.ts # Core wallet functionality
โ”‚ โ”œโ”€โ”€ NetworkManager.ts # Network management
โ”‚ โ””โ”€โ”€ TokenManager.ts # ERC-20 token management
โ”œโ”€โ”€ ๐Ÿ“‚ pages/
โ”‚ โ”œโ”€โ”€ Popup.tsx # Main wallet interface
โ”‚ โ”œโ”€โ”€ TokenList.tsx # Token management UI
โ”‚ โ””โ”€โ”€ Settings.tsx # Settings and preferences
โ”œโ”€โ”€ ๐Ÿ“‚ content/
โ”‚ โ””โ”€โ”€ inject.ts # DApp injection script
โ”œโ”€โ”€ ๐Ÿ“‚ hooks/
โ”‚ โ””โ”€โ”€ useI18n.ts # Internationalization hook
โ”œโ”€โ”€ background.ts # Service worker
โ”œโ”€โ”€ content.ts # Content script
โ””โ”€โ”€ manifest.json # Extension configuration

Tech Stack

  • Frontend: React 18 + TypeScript + Ant Design
  • Blockchain: ethers.js v6 + EIP-1193
  • Crypto: bip39, crypto-js, @metamask/eth-sig-util
  • Build: Vite + vite-plugin-web-extension
  • Browser: WebExtension Polyfill

๐Ÿ”ง Development

Project Structure

# Install dependencies
npm install
# Development with hot reload
npm run dev
# Production build
npm run build
# Type checking
npm run type-check

Configuration

  1. Infura Setup: Configure your Infura API key in WalletManager.ts
  2. Networks: Add custom networks in NetworkManager.ts
  3. Tokens: Configure popular tokens in TokenManager.ts

๐Ÿ“ฑ Usage

๐Ÿ†• First Time Setup

  1. Create New Wallet

    • Click extension icon โ†’ "Create Wallet"
    • Set secure password
    • โš ๏ธ Important: Save your mnemonic phrase securely!
  2. Import Existing Wallet

    • Choose "Import Wallet" tab
    • Enter your 12-word mnemonic phrase
    • Set password

๐Ÿ”— Connecting to DApps

// DApp integration example
if (window.ethereum) {
 console.log('Universal Wallet detected!')
 // Request account access
 const accounts = await window.ethereum.request({
 method: 'eth_requestAccounts'
 })
 // Send transaction
 const txHash = await window.ethereum.request({
 method: 'eth_sendTransaction',
 params: [{
 from: accounts[0],
 to: '0x...',
 value: '0x...'
 }]
 })
}

๐Ÿช™ Managing Tokens

  • Add Token: Click "+" button โ†’ Enter contract address
  • Auto-detection: Popular tokens load automatically
  • Balance Updates: Refreshes every 6 seconds
  • Hide Zero: Toggle to hide tokens with zero balance

๐ŸŒ Multi-language Support

Available in 4 languages:

๐Ÿ›ก๏ธ Security Features

  • ๐Ÿ” Local Encryption: AES encryption for all sensitive data
  • ๐Ÿ”’ Password Protection: Required for all wallet operations
  • โœ… User Confirmation: Manual approval for all transactions
  • ๐Ÿ  Isolated Storage: Chrome extension secure storage
  • ๐Ÿ”‘ No Key Logging: Private keys never leave your device

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Quick Contribution Steps

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

โš ๏ธ Disclaimer

This is experimental software. Use at your own risk. Always:

  • Test on testnets first
  • Keep backups of your mnemonic phrases
  • Never share private keys
  • Conduct security audits before production use

๐Ÿ™‹โ€โ™‚๏ธ Support


Built with โค๏ธ for the decentralized web

Star this repo

About

๐Ÿš€ Complete Web3 Wallet Browser Extension | EIP-1193 Compatible | Multi-Network Ethereum Wallet | MetaMask Alternative | ERC-20 Token Support | Secure DeFi Access | TypeScript + React

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /