Skip to content

๐Ÿš€ 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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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