Inspiration
I've always been into singing and wanted to make an application related to music but never really got a chance to. So this was a great opportunity for me to combine Blockchain and Music as I didn't have any idea of how to do it and didn't know if anyone has done it before so this was a great learning project for me.
What it does
The platform allows artists to:
- Upload Tracks: Artists can upload their music tracks, which are then stored on IPFS through Pinata for decentralized storage.
- Blockchain Registration: The uploaded track is registered on the blockchain using a smart contract. This process involves generating a unique fingerprint for each track using the Chromaprint Library, ensuring authenticity and preventing duplicates.
- Monetization: Fans can tip artists using $VIBE fungible tokens. The platform supports ERC20 tokens, implemented using OpenZeppelin.
- Explore and Discover: Users can search for tracks and view an artist's entire discography.
How I built it
Frontend
- React.js: Provides a robust framework for building the user interface.
- Material-UI: Ensures a consistent and aesthetically pleasing design.
- Axios: Handles API requests to the backend.
Backend
- Node.js and Express.js: Handle server-side operations and define API endpoints.
- Firebase: Manages user authentication and stores user data.
- Chromaprint Library: Generates unique fingerprints for tracks to ensure authenticity.
Blockchain Integration
- Polygon Amoy Testnet: Provides a scalable and efficient blockchain network.
- Alchemy: Facilitates interactions with the blockchain and Smart Contract Deployment
- IPFS Pinata: Store and retrieve files in a decentralized manner.
- OpenZeppelin: Implements ERC20 tokens for cryptocurrency transactions.
Deployment Heroku: Hosts the backend and frontend
Challenges I ran into
- Blockchain Integration: Ensuring the smart contracts interact correctly with the frontend and backend required meticulous debugging and testing. Managing gas fees and transaction speeds on the Polygon network was also challenging.
- File Handling: Implementing file uploads and ensuring compatibility with IPFS for decentralized storage posed technical hurdles, especially in managing large files and ensuring quick retrieval times.
- Error Handling: Managing various error scenarios, such as duplicate track uploads or blockchain transaction failures, required error handling to provide a good user experience.
- Deployment: Deploying the backend and frontend on Heroku and ensuring communication between frontend and backend involved several configurations and adjustments.
Accomplishments that I'm proud of
- First Blockchain Web3 Project: Successfully completing my first blockchain and Web3 project is a significant achievement. It involved learning new technologies and overcoming numerous challenges.
- Functional Platform: Creating a fully functional decentralized music platform that supports music uploads, blockchain registration, and cryptocurrency transactions is a substantial accomplishment.
- User Interface: Developing a user-friendly and visually appealing interface that provides a smooth user experience.
What I learnt
- Blockchain and Web3: Gained in-depth knowledge about blockchain technology, smart contracts, and Web3 integration.
- Decentralized Storage: Learned how to use IPFS for decentralized file storage and its advantages over traditional centralized systems.
- Full-Stack Development: Enhanced my skills in full-stack development, including frontend, backend, and blockchain integration.
- Deployment: Acquired experience in deploying full-stack applications on Heroku and managing environment variables for seamless operation.
What's next for DeMus
- Membership Tiers: Artists can introduce membership tier lists, allowing fans to subscribe for exclusive content and perks.
- NFT Releases: Artists can give out NFTs of their unreleased music or early-release tracks to their fans, creating unique engagement opportunities.
- Concert Tickets: DeMus plans to enable artists to sell tickets to their concerts, which fans can purchase using the platform's $VIBE tokens.
Built With
- alchemyapi
- express.js
- firebase
- heroku
- ipfs
- material-ui
- node.js
- pinata
- polygon
- react.js
- solidity

Log in or sign up for Devpost to join the conversation.