A SocialFi music platform where artists launch tokenized songs as tradable coins and earn directly from fans. It lets fans discover, trade, support rising talent, and share in the upside — creating a new way to connect and grow through music. Built on Zora.
Artists struggle to monetize directly — traditional streaming platforms take large cuts and offer little control or ownership. Fans have no direct way to invest in or own the music they love, or share in artists' success — they're just passive listeners.
DropSynq enables artists to mint their songs as tokenized music coins on Zora, unlocking direct-to-fan monetization. Fans can discover, buy, trade, and collect songs as assets — creating a new music economy where both artists and fans benefit.
- 🎵 Tokenized Song Drops - Launch songs as music coins and earn directly from your fans.
- 💱 Trade & Own Music Coins - Fans can invest in songs they love and directly support artists they believe in.
- 💰 Royalties and Rewards - Artists earn automatically. Fans get early access, exclusive content, and upside.
- 👥 Artists & Fan Profiles - Showcase drops, collections, and build real connections between fans and artists.
- 📊 Asset Portfolio Tracking - View your holdings, activity, and build a valuable music asset collection.
- 💼 Seamless Onboarding - Simple, secure login with wallets — powered by Privy.
- Sign up with Privy and set up your artist profile.
- Upload your song and add metadata.
- Mint it as a coin using Zora Protocol.
- Launch your drop, earn from your fans, and grow your community.
- Discover exclusive music drops and rising artists.
- Buy song coins to support artists you love
- Follow, engage, and connect with creators.
- Track your music assets and share in the upside.
- Frontend: Next.js 15, TypeScript, Tailwind CSS V4, Shadcn UI
- Web3 Integration:
@zoralabs-coins-sdk (CoinV4), wagmi,viem - Web3 Wallet & Auth: Privy
- Storage: IPFS (Pinata)
- Database: Supabase (Postgresql) Drizzle ORM
- Data Fetching: TanStack Query
- State Management: Zustand
- Forms & Validation: react-hook-form, zod
- Toast Notifications: Sonner
DropSynq is built directly on top of Zora's CoinV4 contract using the official SDK. Here's how we leverage the Zora Coins SDK throughout the platform:
Create Functions:
createCoin- Artists mint songs as ERC20 coins with metadata
Get Functions:
getCoin- Fetch individual coin details and metadatagetCoinsNew- Latest coin drops for homepage and searchgetCoinsTopGainers- Trending coins for artist discoverygetCoinsMostValuable- Highest-value coins for chartsgetProfile- Fetch user profiles by handle or wallet addressgetProfileBalances- Get user's coin holdings and portfoliogetProfileCoins- Display coins created by the user
Trade Functions:
tradeCoin- Buy/sell coins with ETH using TradeParametersTradeParameters- Configure trade direction, amounts, slippage
createCoin - /create page for minting song coins
getCoin - Track details page and homepage coin enrichment
getCoinsNew - Homepage discovery and search functionality
getCoinsTopGainers - Artists page and trending discovery
getCoinsMostValuable - Homepage charts and discovery
tradeCoin - Buy button and trade card components
getProfile - Profile pages, header, sidebar, and API routes
getProfileBalances - Profile portfolio and collections
getProfileCoins - Profile created coins tab
This integration enables a complete music economy where artists can tokenize their work, fans can invest in music they love, and everyone benefits from the growing ecosystem.
src/
├── app/
│ ├── (app)/
│ │ ├── create/ # Song coin minting
│ │ ├── profile/ # User profiles & portfolios
│ │ ├── track/ # Individual track pages
│ │ ├── artists/ # Artist discovery
│ │ └── page.tsx # Homepage with discovery
│ └── api/
│ ├── songs/ # Song management APIs
│ └── profile/ # Profile data APIs
├── components/
│ ├── shared/ # Reusable components
│ ├── layout/ # App layout components
│ └── ui/ # Shadcn UI components
├── lib/
│ ├── zora.ts # Zora SDK configuration
│ └── pinata.ts # IPFS upload utilities
├── types/
│ └── zora.ts # Zora SDK type definitions
└── hooks/ # Custom React hooks
-
Clone the repository
git clone https://github.com/samueldanso/dropsynq.git cd dropsynq -
Install dependencies
bun install
-
Set up environment variables:
Create .env and add your API keys and credentials:
cp env.example .envNEXT_PUBLIC_APP_URL="your_app_url"
NEXT_PUBLIC_PRIVY_APP_ID="your_privy_app_id"
PRIVY_APP_SECRET="your_privy_app_secret"
PINATA_JWT="your_pinata_jwt"
NEXT_PUBLIC_GATEWAY_URL="your_pinata_gateway_url"
DATABASE_URL="your_database_url"
NEXT_PUBLIC_SUPABASE_URL="your_supabase_url"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your_supabase_anon_key"
SUPABASE_SERVICE_KEY="your_supabase_secret_key"
ZORA_API_KEY="your_zora_api_key"-
Start the development server
bun run dev
Open http://localhost:3000 in your browser
- Deploy
Deploy your repository to Vercel
- Fork this repository
- Create your feature branch
- Commit your changes
- Open a Pull Request
- Live Demo: dropsynq.vercel.app