A secure, decentralized cryptocurrency wallet built with Next.js, featuring seed phrase generation and multiple wallet management.
- ๐ Secure Seed Phrase Generation - Generate BIP39-compliant 12-word seed phrases
- ๐ผ Multiple Wallets - Create unlimited wallets from a single seed phrase
- ๐ Unique Key Pairs - Each wallet has unique ED25519 public/private key pairs
- ๐ Privacy First - All data stored locally in sessionStorage
- ๐ฐ Solana Airdrop - Request test SOL on devnet and testnet
- ๐ Wallet Connection - Connect any Solana wallet by address (no private key needed)
- ๏ฟฝ Network Switching - Switch between Solana devnet and testnet
- ๐ Balance Display - Real-time wallet balance with manual refresh
- ๐ Explorer Integration - View wallets and transactions on Solana Explorer
- ๏ฟฝ๐ Dark/Light Mode - Beautiful theme toggle with system preference support
- ๐ฑ Mobile Responsive - Fully optimized for all device sizes
- Framework: Next.js 15.5.6 with React 19
- UI: shadcn/ui + Tailwind CSS v4
- Blockchain: Solana Web3.js for wallet connection and airdrops
- Cryptography: BIP39, BIP44 derivation, ED25519 (tweetnacl)
- Theme: next-themes
- TypeScript: Full type safety
- Node.js 18+ installed
- npm, yarn, or pnpm
# Clone the repository
git clone <your-repo-url>
cd web-based-wallet
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 to view the application.
# Create optimized production build
npm run build
# Start production server
npm start# Install Vercel CLI
npm i -g vercel
# Deploy
vercel- Push your code to GitHub
- Go to vercel.com
- Import your repository
- Vercel will auto-detect Next.js and deploy
โโโ src/
โ โโโ app/
โ โ โโโ page.tsx # Home page with two options
โ โ โโโ seed-phrase/
โ โ โ โโโ page.tsx # Seed phrase generation/import
โ โ โโโ airdrop/ # NEW: Airdrop feature
โ โ โ โโโ page.tsx # Wallet connection & airdrop
โ โ โโโ layout.tsx # Root layout with theme provider
โ โ โโโ globals.css # Global styles
โ โ โโโ icon.svg # Custom favicon
โ โโโ components/
โ โ โโโ ui/ # shadcn/ui components
โ โ โโโ SeedPhraseDisplay.tsx # Seed phrase component
โ โ โโโ WalletCard.tsx # Wallet display component
โ โ โโโ theme-provider.tsx # Theme context provider
โ โ โโโ theme-toggle.tsx # Theme switcher component
โ โโโ lib/
โ โโโ utils.ts # Utility functions
โ โโโ wallet.ts # Core wallet cryptography
โ โโโ airdrop.ts # NEW: Solana airdrop utilities
โโโ public/ # Static assets
โโโ package.json # Dependencies
โโโ next.config.ts # Next.js configuration
โโโ tsconfig.json # TypeScript configuration
โโโ vercel.json # Vercel deployment config
- This is a demo wallet for educational purposes
- Never use for production with real funds without proper security audit
- Seed phrases are stored in sessionStorage (cleared on browser close)
- Private keys are hidden by default with bullet masking
- No server-side storage - all cryptography happens client-side
- Generate secure 12-word BIP39 mnemonics
- Import existing seed phrases
- Validate seed phrase format
- Hide/show seed words with bullet masking
- BIP44 derivation path:
m/44'/501'/accountIndex'/0'(501 is Solana's coin type) - ED25519 key pair generation
- Unique wallet IDs using SHA-256
- Public/private key display with copy functionality
- Connect Wallet: Enter any Solana wallet address (Base58 format)
- No Private Key Required: Safe connection using public address only
- Network Selection: Toggle between Solana devnet and testnet
- Balance Checking: Real-time balance display with refresh button
- Airdrop Requests: Request 1 SOL from Solana faucet
- Transaction Tracking: View transaction signatures and status
- Explorer Links: Direct links to Solana Explorer for addresses and transactions
- Error Handling: Clear error messages and status updates
- Clean, modern design with shadcn/ui
- Responsive layouts for mobile, tablet, desktop
- Dark/light theme with custom toggle animation
- Accessibility-focused components
- Consistent design across both features
npm run dev # Start development server (with Turbopack)
npm run build # Create production build
npm start # Start production server
npm run lint # Run ESLint- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
MIT
Contributions welcome! Please open an issue or submit a pull request.
Built with โค๏ธ using Next.js and shadcn/ui
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.