MusicCoin is a revolutionary platform that enables artists to generate original songs using AI and instantly mint each track as a tradable "music coin" on the blockchain. Fans can directly invest in, trade, and support their favorite songs and artists.
- 🎵 AI Music Generation: Create unique tracks using SunoAI with simple prompts
- 🪙 Instant Tokenization: Mint tracks as music coins on Zora protocol
- 📈 Trading & Investment: Buy, sell, and trade music coins
- 👥 Artist Profiles: Comprehensive artist pages with track history
- 💼 Portfolio Management: Track your music coin investments
- 🔗 Web3 Integration: Connect with popular crypto wallets
- Frontend: Next.js 15, React, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Supabase
- Database: PostgreSQL (via Supabase)
- Authentication: Supabase Auth
- Blockchain: Wagmi, Viem, RainbowKit
- AI Integration: SunoAI API
- Tokenization: Zora Protocol
- Node.js 18+ and npm
- Supabase account
- SunoAI API access
- WalletConnect Project ID
-
Clone the repository
git clone <repository-url> cd music_coin
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables in
.env.local -
Set up the database
In your Supabase project, run the SQL files in the
database/folder in order:schema.sql- Creates the database schemarls_policies.sql- Sets up Row Level Securitysample_data.sql- Adds sample data (optional)
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── artist/ # Artist dashboard pages
│ ├── marketplace/ # Marketplace pages
│ └── profile/ # User profile pages
├── components/ # React components
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries
└── types/ # TypeScript type definitions
database/
├── schema.sql # Database schema
├── rls_policies.sql # Row Level Security policies
└── sample_data.sql # Sample data for development
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.