A beautiful, production-ready decentralized wallet dashboard built with React, TypeScript, and modern Web3 technologies. This application provides users with a unified interface to manage their crypto assets, view NFT collections, and track transaction history across multiple blockchain networks.
- Secure Connection: Seamless wallet connectivity via RainbowKit
- Multi-Wallet Support: Compatible with MetaMask, WalletConnect, and other popular wallets
- Real-time Balance: Live ETH balance fetching from connected wallet
- Multi-Chain Ready: Supports Ethereum, Polygon, Optimism, Arbitrum, Base, and Sepolia
- Portfolio Overview: Comprehensive dashboard with key metrics and statistics
- Token Balances: Visual display of all token holdings with price changes
- Real-time Updates: Live balance and portfolio value tracking
- Performance Metrics: 24h changes and portfolio growth indicators
- Visual Collection: Beautiful grid layout for NFT display
- Collection Details: Floor prices, estimated values, and metadata
- Interactive Cards: Hover effects and detailed view options
- Collection Management: Organized by collections with filtering capabilities
- Recent Activity: Chronological transaction feed with visual indicators
- Transaction Types: Send, receive, and swap transactions with distinct styling
- Status Tracking: Real-time transaction status updates
- External Links: Direct links to blockchain explorers
- Glassmorphism Design: Modern glass-like effects with backdrop blur
- Responsive Layout: Mobile-first design that works on all devices
- Dark Theme: Elegant dark theme with purple/blue gradients
- Micro-interactions: Smooth animations and hover states
- Accessibility: WCAG compliant with proper contrast ratios
- React 18 - Modern React with hooks and concurrent features
- TypeScript - Type-safe development with full IntelliSense
- Vite - Lightning-fast build tool and development server
- Tailwind CSS - Utility-first CSS framework for rapid styling
- wagmi - React hooks for Ethereum development
- RainbowKit - Beautiful wallet connection UI and management
- viem - TypeScript interface for Ethereum interaction
- ESLint - Code linting with React and TypeScript rules
- PostCSS - CSS processing with Tailwind and Autoprefixer
- Yarn - Fast, reliable package management
- Node.js 18+
- Yarn package manager
- A Web3 wallet (MetaMask recommended)
-
Clone the repository
git clone https://github.com/meKushdeepSingh/react-web3-wallet-dashboard.git cd web3-wallet-dashboard -
Install dependencies
yarn install
-
Configure WalletConnect (Optional)
- Get a project ID from WalletConnect Cloud
- Update
src/wagmi.tswith your project ID:
projectId: "YOUR_PROJECT_ID";
-
Start the development server
yarn dev
-
Open your browser Navigate to
http://localhost:5173to view the application
src/
โโโ components/ # React components
โ โโโ ConnectWallet.tsx # Wallet connection landing page
โ โโโ Dashboard.tsx # Main dashboard layout
โ โโโ Header.tsx # Navigation header
โ โโโ WalletOverview.tsx # Portfolio summary cards
โ โโโ TokenBalances.tsx # Token holdings display
โ โโโ RecentTransactions.tsx # Transaction history
โ โโโ NFTGallery.tsx # NFT collection display
โโโ App.tsx # Main app component with providers
โโโ main.tsx # Application entry point
โโโ wagmi.ts # Web3 configuration
โโโ index.css # Global styles
โโโ vite-env.d.ts # Vite type definitions
Beautiful landing page that appears when no wallet is connected. Features:
- Compelling hero section with gradient backgrounds
- Feature highlights with icons and descriptions
- Prominent wallet connection button
- Responsive design with mobile optimization
Main application interface with modular layout:
- Conditional rendering based on wallet connection status
- Glassmorphism background with subtle patterns
- Responsive grid system for optimal viewing
- Organized component hierarchy
Portfolio summary with key metrics:
- Real ETH balance from connected wallet
- Portfolio value calculations
- Token count and activity metrics
- Color-coded performance indicators
Token holdings management:
- Visual token list with icons and metadata
- Balance display with USD values
- Price change indicators with trend arrows
- Interactive hover states
Transaction history display:
- Categorized transaction types (send/receive/swap)
- Visual status indicators
- Timestamp and value information
- Links to blockchain explorers
NFT collection showcase:
- Grid layout with responsive breakpoints
- Image optimization and loading states
- Collection metadata and floor prices
- Interactive cards with hover effects
The application is configured to work with:
- Ethereum Mainnet - Primary network
- Polygon - Layer 2 scaling solution
- Optimism - Optimistic rollup
- Arbitrum - Arbitrum rollup
- Base - Coinbase's L2 network
- Sepolia - Ethereum testnet
RainbowKit is configured with:
- Custom app name and branding
- Multiple wallet connectors
- Chain switching capabilities
- Connection persistence
- Primary: Blue to purple gradients
- Secondary: Green for positive values, red for negative
- Neutral: Slate grays for backgrounds and text
- Accent: Various colors for different token types
- Headings: Bold weights with proper hierarchy
- Body: Regular weight with good readability
- Captions: Lighter weight for secondary information
- Grid System: 8px base unit for consistent spacing
- Component Padding: Generous padding for touch targets
- Margins: Consistent vertical rhythm
yarn buildyarn previewThis application can be deployed to:
- Vercel - Recommended for React applications
- Netlify - Great for static site deployment
- GitHub Pages - Free hosting for open source projects
- AWS S3 - Scalable cloud hosting
- Real token price integration (CoinGecko API)
- Multi-chain portfolio aggregation
- Token transfer functionality
- Real NFT metadata fetching
- Push notifications for transactions
- Portfolio analytics and charts
- DeFi protocol integration
- Staking rewards tracking
- Unit and integration testing
- Performance optimization
- PWA capabilities
- Offline functionality
- Advanced error handling
- Internationalization (i18n)
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Maintain component modularity
- Write descriptive commit messages
- Test on multiple devices and browsers
This project is licensed under the MIT License - see the LICENSE file for details.
- RainbowKit - For excellent wallet connection UX
- wagmi - For powerful React Web3 hooks
- Tailwind CSS - For rapid UI development
- Lucide React - For beautiful, consistent icons
- Vite - For blazing fast development experience
If you have any questions or need help:
- Open an issue on GitHub
- Check the documentation
- Join our community discussions
Built with โค๏ธ for the Web3 community
