Transform your photos into NFTs instantly. Upload, mint, and receive your digital assets directly in your wallet.
- 📸 Instant Photo Upload - Drag and drop or click to upload your photos
- 🔗 IPFS Storage - Decentralized storage using Pinata IPFS
- 🚀 One-Click Minting - Mint NFTs directly to your Solana wallet
- 🌓 Dark/Light Mode - Beautiful responsive UI
- 📱 Responsive Design - Works seamlessly on desktop and mobile
- ⚡ Fast & Secure - Built with modern web technologies
- 🎯 User-Friendly - Simple interface for non-technical users
FaceMint/
├── Frontend/ # React + Vite frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── contexts/ # React contexts (Theme, etc.)
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utility functions
│ └── public/ # Static assets
├── backend/ # Node.js Express API server
│ ├── utils/ # Backend utilities (Pinata integration)
│ └── index.js # Main server file
└── .env.example # Environment variables template
- Node.js 18 or higher
- npm or yarn
- Solana wallet (Phantom, Solflare, etc.)
- Pinata account for IPFS storage
git clone https://github.com/Lviffy/FaceMint.git
cd FaceMint# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create environment file
cp .env.example .env
# Edit .env with your actual values
nano .envRequired Environment Variables:
PRIVATE_KEY- Your Solana wallet private key (JSON array format)PINATA_JWT- Your Pinata JWT tokenPINATA_GATEWAY- Your Pinata gateway URL
# Navigate to frontend directory
cd ../Frontend
# Install dependencies
npm installBackend (Port 3000):
cd backend
npm startFrontend (Port 5173):
cd Frontend
npm run devVisit http://localhost:5173 to see the application!
- React 18 - Modern UI library
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icons
- React Router - Client-side routing
- Node.js - JavaScript runtime
- Express.js - Web application framework
- Solana Web3.js - Solana blockchain interaction
- Metaplex - NFT minting utilities
- Pinata SDK - IPFS file storage
- CORS - Cross-origin resource sharing
- Solana - Fast, low-cost blockchain
- IPFS - Decentralized file storage via Pinata
- Metaplex Token Metadata - NFT standard implementation
Mint a new NFT from uploaded image.
Request Body:
{
"name": "My Awesome NFT",
"walletAddress": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"image": "QmYourImageCIDFromIPFS"
}Response:
{
"success": true,
"nftAddress": "TokenAddressHere",
"metadataUri": "https://gateway.pinata.cloud/ipfs/QmMetadataCID"
}# Solana Configuration
PRIVATE_KEY=[123,45,67,...] # Your wallet private key as JSON array
# Pinata IPFS Configuration
PINATA_JWT=your_pinata_jwt_token
PINATA_GATEWAY=https://your-gateway.mypinata.cloud
# Optional
PORT=3000
NODE_ENV=development-
Pinata Setup:
- Sign up at pinata.cloud
- Create API key with admin permissions
- Set up a gateway for file access
-
Solana Wallet:
- Export private key from your wallet (Phantom, Solflare)
- Convert to JSON array format:
[123, 45, 67, ...]
cd Frontend
npm run build
# Deploy the dist/ foldercd backend
# Set environment variables in your hosting platform
# Deploy with Node.js buildpack- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Solana - For the blazing fast blockchain
- Metaplex - For NFT infrastructure
- Pinata - For IPFS storage solutions
- Tailwind CSS - For beautiful styling
- Radix UI - For accessible components
If you have any questions or need help:
- Open an issue
- Check our documentation
- Join our community discussions