A modern, secure Ethereum wallet built with ZeroDev's smart account infrastructure, featuring passkey authentication and social login capabilities.
- Social Login First: Start with easy email/social authentication using Web3Auth
- Progressive Security: Add passkeys for enhanced multi-signature security
- Passkey Authentication: Secure biometric authentication using WebAuthn (Face ID, Touch ID, Windows Hello)
- No Seed Phrases: Eliminate the complexity of traditional wallet management
- Progressive Enhancement: Start with social login, upgrade to multi-sig by adding passkeys
- Flexible Policies: Configure signature thresholds and high-value transaction requirements
- Multiple Signers: Support for both social login and passkey validators
- Secure Recovery: Multiple authentication methods prevent account lockout
- Gas Sponsorship: Transactions sponsored by ZeroDev (no ETH needed for gas)
- Account Abstraction: ERC-4337 compliant smart accounts
- Multi-Signature Support: Enhanced security with configurable signature requirements
- Batch Transactions: Execute multiple operations in a single transaction
- Intuitive Interface: Clean, modern design built with Tailwind CSS
- Real-time Balance: Live ETH balance updates
- Transaction History: Complete transaction tracking with status updates
- Demo Features: NFT minting and token sending capabilities
- Initial Setup: Login with social authentication (Google, GitHub, or email)
- Add Security: Navigate to Security Settings and add a passkey signer
- Configure Policy: Set signature thresholds and high-value transaction limits
- Enhanced Security: Transactions now require multiple signatures based on your policy
- Transaction Creation: User initiates a transaction
- Policy Check: System determines if multi-sig is required based on:
- Transaction value vs. high-value threshold
- Current security policy settings
- Signature Collection: Required signers approve the transaction
- Execution: Transaction executes once threshold is met
- Signer Management: Add/remove passkeys and view active signers
- Signature Policies: Configure when multi-sig is required
- Threshold Settings: Set how many signatures are needed
- High-Value Limits: Automatic multi-sig for large transactions
- Node.js 18+ and npm
- Modern browser with WebAuthn support
-
Clone the repository
git clone <repository-url> cd zerowallet
-
Install dependencies
npm install
-
Environment Setup Create a
.env.localfile with the following variables:# ZeroDev Configuration NEXT_PUBLIC_ZERODEV_PROJECT_ID=your_project_id NEXT_PUBLIC_ZERODEV_BUNDLER_RPC=your_bundler_rpc_url NEXT_PUBLIC_ZERODEV_PAYMASTER_RPC=your_paymaster_rpc_url # Network Configuration NEXT_PUBLIC_CHAIN_ID=11155111 NEXT_PUBLIC_RPC_URL=https://sepolia.infura.io/v3/your_infura_key # Web3Auth Configuration NEXT_PUBLIC_WEB3AUTH_CLIENT_ID=your_web3auth_client_id # Application Settings NEXT_PUBLIC_APP_NAME=ZeroWallet NEXT_PUBLIC_APP_URL=http://localhost:3000
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
- Visit ZeroDev Dashboard
- Create a new project
- Copy your Project ID, Bundler RPC, and Paymaster RPC URLs
- Add them to your
.env.localfile
- Visit Web3Auth Dashboard
- Create a new project
- Copy your Client ID
- Add it to your
.env.localfile
- AuthContext: Manages authentication state and multi-signer operations
- PasskeyService: Handles WebAuthn passkey operations
- SocialLoginService: Manages Web3Auth social authentication
- MultiValidatorService: Coordinates multiple authentication methods
- WalletContext: Manages wallet state, transactions, and multi-sig operations
- WalletService: Core wallet operations and smart account management
- SignerManagement: Interface for adding/removing signers
- SecuritySettings: Comprehensive security configuration page
- MultiSigTransactionModal: Transaction signing interface
- SignerCard: Individual signer display component
- LoginForm/RegisterForm: Authentication interfaces
- WalletDashboard: Main wallet interface with security status
- SendTransaction: Transaction sending modal
- MintNFT: Demo NFT minting functionality
- Frontend: Next.js 15, React 18, TypeScript
- Styling: Tailwind CSS, Heroicons
- Blockchain: Viem, ZeroDev SDK
- Authentication: WebAuthn, Web3Auth
- Smart Accounts: ERC-4337, Kernel accounts
- Multi-Signature: ZeroDev Weighted Validator, Custom Multi-Validator Service
- Hardware-backed security keys
- Biometric authentication
- No password storage
- Phishing-resistant
- Multi-signature capabilities
- Session key management
- Account recovery mechanisms
- Gas sponsorship without compromising security
- Registration: Test passkey and social login registration
- Authentication: Verify login with both methods
- Wallet Operations: Test balance display and transaction history
- Transactions: Send test transactions and mint demo NFTs
- Testnet: Currently configured for Sepolia testnet
- Gas Sponsorship: Verify sponsored transactions work correctly
- Error Handling: Test network failures and recovery
- Chrome/Edge: Full WebAuthn support
- Safari: Touch ID and Face ID support
- Firefox: Platform authenticator support
- iOS Safari: Face ID and Touch ID
- Android Chrome: Fingerprint and face unlock
- Progressive Web App: Installable on mobile devices
npm run build
npm startEnsure all production environment variables are set:
- Use production RPC URLs
- Configure production Web3Auth keys
- Set appropriate CORS origins
- Vercel: Recommended for Next.js applications
- Netlify: Alternative deployment option
- Custom Server: Docker containerization available
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Passkey not working: Ensure browser supports WebAuthn
- Transaction failures: Check network connection and gas sponsorship
- Login issues: Verify environment variables are set correctly
- Check the ZeroDev Documentation
- Review Web3Auth Documentation
- Open an issue in this repository
- Multi-chain support (Polygon, Arbitrum, Optimism)
- NFT gallery and management
- DeFi integrations (swaps, lending)
- Mobile app development
- Advanced recovery mechanisms
- Social recovery features