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.