A powerful, user-friendly web application for creating and minting custom meme tokens on the Solana blockchain. No coding experience required!
- Features
- Prerequisites
- Quick Start
- Installation
- Configuration
- Usage
- Project Structure
- Technologies Used
- Development
- Deployment
- Troubleshooting
- Contributing
- Support
- License
β¨ Core Features
- πͺ Create custom meme tokens on Solana with ease
- π Switch seamlessly between Devnet and Mainnet
- π Connect with all major Solana wallets (Phantom, Solflare, etc.)
- π User authentication with Clerk for account management
- π Track and view all your created coins in a personalized dashboard
- πΌοΈ Upload custom token images to IPFS via Pinata
- πΎ Persistent coin history across devices (when logged in)
- π¨ Modern, responsive UI with dark/light mode support
User Experience
-
Real-time wallet balance and fee estimation
-
Interactive token creation wizard
-
Detailed token metadata management
-
Network status indicators
-
Toast notifications for actions and errors
-
Mobile-optimized interface
Before you begin, ensure you have:
- Node.js: >= 22.0.0 (Download)
- npm or bun: For package management
- A Solana Wallet: Download Phantom, Solflare, or another Solana-compatible wallet
- SOL Tokens: For paying transaction fees (use devnet for testing)
- Devnet: Get free SOL from the Solana Devnet Faucet
- Mainnet: Purchase SOL from an exchange
Optional but Recommended:
- Clerk Account: For user authentication (Sign up free at clerk.com)
- Pinata Account: For IPFS image hosting (Sign up free at pinata.cloud)
Get up and running in 3 minutes:
# 1. Clone the repository
git clone https://github.com/ShadowSafin/SolanaMinter.git
cd SolanaMinter
# 2. Install dependencies
npm install
# 3. Start development server
npm run devOpen http://localhost:5173 in your browser and start creating tokens! π
git clone https://github.com/ShadowSafin/SolanaMinter.git
cd SolanaMinterUsing npm:
npm installOr using bun (faster):
bun installnpm run lint- The app auto-detects installed wallets
- Simply connect your wallet in the app UI
- Choose between Devnet and Mainnet in the app
- Devnet is perfect for testing
To enable sign-in features and persistent coin tracking:
-
Create a Clerk Account
- Visit clerk.com and sign up (free)
- Create a new application
-
Get Your API Key
- In your Clerk dashboard, navigate to API Keys
- Copy your Publishable Key (starts with
pk_test_for development)
-
Add to Environment Variables Create a
.env.localfile in the project root:VITE_CLERK_PUBLISHABLE_KEY=pk_test_your_key_here
-
Restart the Development Server
npm run dev
For Production: See PRODUCTION_SETUP.md for detailed instructions on switching to production keys.
To allow users to upload custom token images:
-
Create a Pinata Account
- Visit pinata.cloud and sign up (free)
-
Configure API Keys (contact admin for integration)
-
Connect Your Wallet
- Click "Connect Wallet" in the top right
- Select your wallet and approve the connection
-
Fill Token Details
- Token Name: e.g., "Doge Moon"
- Token Symbol: e.g., "DMOON" (max 10 characters)
- Decimals: Usually 9 (standard for Solana)
- Supply: Total number of tokens to mint
-
Add Metadata (Optional)
- Upload a custom image (jpg, png)
- Add description and URI
- Set metadata account (auto-generated recommended)
-
Review & Create
- Review your token details
- Click "Create Token"
- Approve the transaction in your wallet
- Wait for confirmation (usually 15-30 seconds)
-
Success!
- Your token appears in "Your Created Coins" section
- Share your token with others
- View on blockchain explorers (if enabled)
- Use the network selector in the header
- Devnet: For testing (free tokens)
- Mainnet: For production (requires real SOL)
- Dashboard: All your created tokens appear in "Your Created Coins"
- Persistent Tracking: Coins are saved with your account (if logged in)
- Cross-Device: Access your coins from any device (if logged in)
SolanaMinter/
βββ src/
β βββ components/ # React components
β β βββ ui/ # shadcn-ui components
β β βββ AuthButtons.tsx # Login/logout UI
β β βββ CoinCreator.tsx # Token creation form
β β βββ Header.tsx # App header
β β βββ WalletConnect.tsx # Wallet connection UI
β βββ services/ # Business logic
β β βββ solana.ts # Solana blockchain interactions
β β βββ tokenCreation.ts # Token creation logic
β β βββ metaplex.ts # Metaplex NFT metadata
β β βββ pinata.ts # IPFS image uploads
β β βββ api.ts # Backend API calls
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
β βββ pages/ # Page components
β βββ types/ # TypeScript type definitions
βββ public/ # Static assets
βββ package.json
βββ tsconfig.json
βββ tailwind.config.ts
βββ vite.config.ts
- React 18 - UI library
- TypeScript - Type safety
- Vite - Lightning-fast build tool
- Tailwind CSS - Utility-first CSS
- shadcn-ui - High-quality React components
- @solana/web3.js - Solana interactions
- @metaplex-foundation/js - NFT metadata management
- Metaplex Token Metadata - Standard token metadata
# Start development server with hot reload
npm run dev
# Build for production
npm run build
# Build with development config
npm run build:dev
# Preview production build locally
npm run preview
# Lint code for errors
npm run lint-
Start Dev Server
npm run dev
-
Edit Code
- Files in
src/auto-reload on save - TypeScript errors appear in terminal and browser
- Files in
-
Test Changes
- Open http://localhost:5173
- Use Devnet for safe testing
-
Commit & Push
git add . git commit -m "Add new feature" git push origin main
- Follow ESLint rules:
npm run lint - Use TypeScript for all new code
- Components use React functional components + hooks
- Folder structure mirrors feature/functionality
Option 1: Local IDE (Recommended)
git clone https://github.com/ShadowSafin/SolanaMinter.git
# Edit in VS Code, WebStorm, etc.Option 2: GitHub Web Editor
- Navigate to any file on GitHub
- Click the pencil icon to edit
- Commit changes directly
Option 3: GitHub Codespaces
- Click "Code" β "Codespaces" β "Create codespace"
- Full VS Code experience in browser
- Auto-synced with GitHub
This project is deployed on Vercel and accessible at: π solanaminter.fun
-
Push to GitHub
git push origin main
-
Connect to Vercel
- Visit vercel.com
- Click "Import Git Repository"
- Select your SolanaMinter repo
- Click "Deploy"
-
Set Environment Variables (in Vercel dashboard)
VITE_CLERK_PUBLISHABLE_KEY=pk_live_your_key -
Done! Your app is live
# Build optimized production bundle
npm run build
# Preview locally before deployment
npm run preview
# Deploy the `dist/` folder to your hosting providerFROM node:22-alpine
WORKDIR /app
COPY package.json bun.lockb ./
RUN npm install
COPY . .
RUN npm run build
ENV NODE_ENV=production
CMD ["npm", "run", "preview"]- Problem: Wallet extension not installed
- Solution:
- Problem: Not enough balance for transaction
- Solution:
- Devnet: Visit faucet.solana.com and request free SOL
- Mainnet: Purchase SOL from an exchange
- Problem: Transaction error or network issue
- Solution:
- Check network connectivity
- Verify network selection (Devnet vs Mainnet)
- Check wallet balance
- Try again in a few moments
- Problem: Clerk authentication not configured
- Solution:
- See CLERK_SETUP.md for setup
- Verify
VITE_CLERK_PUBLISHABLE_KEYis in.env.local - Restart dev server:
npm run dev
- Problem: Pinata not configured
- Solution:
- Contact admin for Pinata integration
- Or proceed without custom images
More help: See TROUBLESHOOTING_AUTH.md
We welcome contributions! Here's how to help:
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/SolanaMinter.git - Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
- Follow existing code style (ESLint rules)
- Write clear commit messages
- Add tests for new features
- Update README if needed
- Be respectful and constructive
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π¨ UI/UX enhancements
- βΏ Accessibility improvements
- π Internationalization support
- Documentation: Read CLERK_SETUP.md, PRODUCTION_SETUP.md, TROUBLESHOOTING_AUTH.md
- Issues: Check GitHub Issues
- Discussions: Start a GitHub Discussion
- Solana Docs: Visit docs.solana.com
- Clerk Docs: Visit clerk.com/docs
- Search existing issues first
- Create a new issue with:
- Clear title describing the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- System info (OS, Node version, browser)
- Never share private keys - Never paste your wallet's private key anywhere
- HTTPS only - Always use HTTPS in production
- Environment variables - Keep API keys secret, never commit
.envfiles - Verify signatures - Always verify transaction details before signing
If you discover a security vulnerability, please email security@example.com instead of posting publicly.
- Advanced token parameters (freeze authority, mint authority)
- Token burn/destroy functionality
- Token transfers and swaps
- Multi-signature wallet support
- Airdrop functionality
- Community marketplace
- Mobile app
- Multi-language support
- API for token creation
- Batch token creation
- Enhanced fee estimation
- Improved error messages
- Performance optimization
Q: Do I need SOL to create tokens? A: Yes, you need SOL for transaction fees. Use Devnet with free SOL for testing.
Q: Can I modify a token after creation? A: Currently, basic token properties are immutable. Future versions will support modifications.
Q: Is my data stored? A: If logged in with Clerk, your coin creation history is stored in your account. Without login, data is only stored locally.
Q: What tokens can I create? A: You can create any custom token. Always create responsibly and follow laws/regulations.
Q: How long does token creation take? A: Usually 15-30 seconds for transaction confirmation on-chain.
This project is licensed under the MIT License - see the LICENSE file for details.
You are free to use, modify, and distribute this software as long as you include the license.
- Solana Foundation - For the amazing blockchain
- Metaplex - For NFT standards and tools
- shadcn/ui - For beautiful React components
- Tailwind Labs - For Tailwind CSS
- Clerk - For authentication
- All contributors and users of this project
- GitHub: @ShadowSafin
- Website: solanaminter.fun
Made with β€οΈ for the Solana community
