Skip to content

ShadowSafin/SolanaMinter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Solana Meme Token Minter πŸͺ™

A powerful, user-friendly web application for creating and minting custom meme tokens on the Solana blockchain. No coding experience required!

ONLINE Node Version License

SolanaMinter Production Site Screenshot

Table of Contents

Features

✨ 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

Prerequisites

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)

Optional but Recommended:

Quick Start

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 dev

Open http://localhost:5173 in your browser and start creating tokens! πŸš€

Installation

Step 1: Clone the Repository

git clone https://github.com/ShadowSafin/SolanaMinter.git
cd SolanaMinter

Step 2: Install Dependencies

Using npm:

npm install

Or using bun (faster):

bun install

Step 3: Verify Installation

npm run lint

Configuration

Required Configuration

1. Wallet Setup (No Configuration Needed)

  • The app auto-detects installed wallets
  • Simply connect your wallet in the app UI

2. Network Selection (No Configuration Needed)

  • Choose between Devnet and Mainnet in the app
  • Devnet is perfect for testing

Optional Configuration

Enable Authentication with Clerk

To enable sign-in features and persistent coin tracking:

  1. Create a Clerk Account

    • Visit clerk.com and sign up (free)
    • Create a new application
  2. Get Your API Key

    • In your Clerk dashboard, navigate to API Keys
    • Copy your Publishable Key (starts with pk_test_ for development)
  3. Add to Environment Variables Create a .env.local file in the project root:

    VITE_CLERK_PUBLISHABLE_KEY=pk_test_your_key_here
  4. Restart the Development Server

    npm run dev

For Production: See PRODUCTION_SETUP.md for detailed instructions on switching to production keys.

Enable Image Uploads with Pinata

To allow users to upload custom token images:

  1. Create a Pinata Account

  2. Configure API Keys (contact admin for integration)

Usage

Creating Your First Token

  1. Connect Your Wallet

    • Click "Connect Wallet" in the top right
    • Select your wallet and approve the connection
  2. 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
  3. Add Metadata (Optional)

    • Upload a custom image (jpg, png)
    • Add description and URI
    • Set metadata account (auto-generated recommended)
  4. Review & Create

    • Review your token details
    • Click "Create Token"
    • Approve the transaction in your wallet
    • Wait for confirmation (usually 15-30 seconds)
  5. Success!

    • Your token appears in "Your Created Coins" section
    • Share your token with others
    • View on blockchain explorers (if enabled)

Switching Networks

  • Use the network selector in the header
  • Devnet: For testing (free tokens)
  • Mainnet: For production (requires real SOL)

Viewing Your Tokens

  • 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)

Project Structure

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

Technologies Used

Frontend

Blockchain

Authentication & Storage

  • Clerk - User authentication and management
  • Pinata - IPFS pinning for images

Development

  • ESLint - Code linting
  • PostCSS - CSS processing
  • Bun - Fast JavaScript runtime (optional)

Development

Available Scripts

# 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

Development Workflow

  1. Start Dev Server

    npm run dev
  2. Edit Code

    • Files in src/ auto-reload on save
    • TypeScript errors appear in terminal and browser
  3. Test Changes

  4. Commit & Push

    git add .
    git commit -m "Add new feature"
    git push origin main

Code Style

  • Follow ESLint rules: npm run lint
  • Use TypeScript for all new code
  • Components use React functional components + hooks
  • Folder structure mirrors feature/functionality

Editing Options

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

Deployment

Current Deployment

This project is deployed on Vercel and accessible at: πŸ‘‰ solanaminter.fun

Deploy Your Own

Option 1: Vercel (Recommended)

  1. Push to GitHub

    git push origin main
  2. Connect to Vercel

    • Visit vercel.com
    • Click "Import Git Repository"
    • Select your SolanaMinter repo
    • Click "Deploy"
  3. Set Environment Variables (in Vercel dashboard)

    VITE_CLERK_PUBLISHABLE_KEY=pk_live_your_key
    
  4. Done! Your app is live

Option 2: Build Locally

# Build optimized production bundle
npm run build

# Preview locally before deployment
npm run preview

# Deploy the `dist/` folder to your hosting provider

Option 3: Docker Deployment

FROM 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"]

Troubleshooting

Common Issues

"Wallet not found"

  • Problem: Wallet extension not installed
  • Solution:

"Insufficient SOL for fees"

  • Problem: Not enough balance for transaction
  • Solution:
    • Devnet: Visit faucet.solana.com and request free SOL
    • Mainnet: Purchase SOL from an exchange

"Token creation failed"

  • 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

"Can't sign in with Clerk"

  • Problem: Clerk authentication not configured
  • Solution:
    • See CLERK_SETUP.md for setup
    • Verify VITE_CLERK_PUBLISHABLE_KEY is in .env.local
    • Restart dev server: npm run dev

"Image upload failing"

  • Problem: Pinata not configured
  • Solution:
    • Contact admin for Pinata integration
    • Or proceed without custom images

More help: See TROUBLESHOOTING_AUTH.md

Contributing

We welcome contributions! Here's how to help:

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/YOUR_USERNAME/SolanaMinter.git
  3. Create a feature branch: git checkout -b feature/amazing-feature
  4. Make your changes
  5. Commit: git commit -m 'Add amazing feature'
  6. Push: git push origin feature/amazing-feature
  7. Open a Pull Request

Contribution Guidelines

  • Follow existing code style (ESLint rules)
  • Write clear commit messages
  • Add tests for new features
  • Update README if needed
  • Be respectful and constructive

Areas for Contribution

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“š Documentation improvements
  • 🎨 UI/UX enhancements
  • β™Ώ Accessibility improvements
  • 🌐 Internationalization support

Support

Getting Help

Reporting Bugs

  1. Search existing issues first
  2. 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)

Security

Security Considerations

  • 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 .env files
  • Verify signatures - Always verify transaction details before signing

Reporting Security Issues

If you discover a security vulnerability, please email security@example.com instead of posting publicly.

Roadmap

Upcoming Features

  • 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

In Progress

  • Enhanced fee estimation
  • Improved error messages
  • Performance optimization

FAQ

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.

License

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.

Acknowledgments

Contact & Social


⬆ back to top

Made with ❀️ for the Solana community

About

Create and mint custom meme tokens on Solana in minutes. No coding required. Switch between Devnet/Mainnet, connect your wallet, and deploy your token with an intuitive interface. Features Clerk auth, Pinata IPFS, and Metaplex metadata.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors