A full-stack application for managing Solana NFTs, built with Next.js, TypeScript, and Node.js. This application allows users to mint, transfer, and manage NFTs on the Solana blockchain.
- 🎨 Mint new NFTs with custom metadata
- 💫 Transfer NFTs between wallets
- 🖼️ View NFT collections
- 🔄 Automatic token account creation
- 📊 Real-time transaction status
- 🎯 Solana wallet integration
- ☁️ Cloudinary image hosting
- React/Next.js with TypeScript
- Tailwind CSS for styling
- Framer Motion for animations
- Solana Wallet Adapter
- @solana/web3.js and @solana/spl-token for blockchain interactions
- Node.js/Express
- MongoDB for data persistence
- Cloudinary for image storage
- Solana Web3.js for blockchain interactions
Before you begin, ensure you have the following installed:
- Node.js
- npm
- MongoDB
- Solana CLI tools (optional but recommended)
- A Solana wallet (Phantom, Solflare, etc.)
PORT=5000
MONGODB_URI=your_mongodb_uri
SOLANA_NETWORK=devnet
SOLANA_RPC_URL=your_rpc_url (optional)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
-
Clone the repository
git clone https://github.com/yourusername/solana-token-manager.git cd solana-token-manager
-
Backend Setup
cd backend npm install # Create .env file and add your environment variables # Start the server npm run dev
-
Frontend Setup
cd frontend npm install # Start the development server npm run dev
solana-token-manager/
├── backend/
│ ├── controllers/
│ │ └── nftController.js
│ ├── models/
│ │ └── NFT.js
│ ├── services/
│ │ └── solanaService.js
│ └── server.js
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── styles/
│ └── next.config.js
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/featureName
) - Commit your changes (
git commit -m 'Add some featureName'
) - Push to the branch (
git push origin feature/featureName
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the repository or contact the maintainers.
Made with ❤️ for the Solana community