zkTune is a revolutionary music streaming platform built on blockchain technology. It utilizes zero-knowledge proofs to enable secure and private music streaming while empowering artists and fostering a fairer music ecosystem.
- Decentralized: Eliminates the need for intermediaries, allowing direct interaction between artists and fans.
- Zero-Knowledge Proofs: Ensures privacy by verifying payment without revealing users' listening habits.
- Artist Empowerment: Provides artists with greater control over their music and the ability to earn directly from fans.
- Transparent Transactions: Blockchain technology offers secure and transparent transaction tracking.
- Rich Music Library: Explore a vast collection of music from independent and established artists.
- User Registration: Users create accounts on the zkTune platform.
- Music Streaming: Users search for music and stream their favorite tracks.
- Micropayments: Zero-knowledge proofs verify payments without revealing specific listening details. This protects user privacy while ensuring artists receive compensation.
- Smart Contracts: Securely manage payments and artist royalties through self-executing smart contracts.
- Content Distribution: Music files are stored securely using decentralized storage solutions (e.g., IPFS, Pinata).
- Direct Revenue Sharing: Earn directly from fans without platform deductions.
- Fair Compensation: Transparent royalty distribution based on streamed tracks.
- Global Reach: Gain exposure to a wider audience on a decentralized platform.
- Creative Control: Maintain complete ownership and control over your music.
- Privacy-Focused Streaming: Enjoy music without compromising your listening habits.
- Direct Support for Artists: Contribute directly to your favorite artists' success.
- Transparent Fees: Understand exactly how your payments are used.
- Rich Music Discovery: Explore a diverse range of music from independent talents.
- Blockchain: zkSync
- Smart Contract Framework: Solidity and Hardhat
- Frontend Framework: NextJS
- Backend Database: Pinata
- Prerequisites: Node.js
- Installation: The installation of the application will require further steps:
- First clone the repository:
git clone https://github.com/mishraji874/zkTune-Decentralized-Music-Streaming-Platform.git
- Install all of the packages of the main application to run the hardhat and compile and deploy the smart contracts:
npm install
- Create a
.env
file and paste your PRIVATE_KEY of the wallet asWALLET_PRIVATE_KEY
. - Then, compile all of the smart contracts using the command given below:
npx hardhat compile
- Now, deploy the smart contracts to the zkSync blockchain by running the deploy command:
npm run deploy
- After successfully deploying the contracts, copy the contract addresses of the
GeneralPaymaster
contract address and also copy the address of thezkTune
contract address and paste them into theinterface
folder and create a new file named.env
and paste both the contract addresses and also thePINATA_API_KEY
and alsoPINATA_SECRET_API_KEY
in the following order:NEXT_PUBLIC_ZK_TUNE_ADDRESS = "ZK_TUNE_ADDRESS_goes_here" NEXT_PUBLIC_PAYMASTER_ADDRESS = "PAYMASTER_ADDRESS_goes_here" NEXT_PUBLIC_PINATA_API_KEY="PINATA_API_KEY_goes_here" NEXT_PUBLIC_PINATA_SECRET_API_KEY="PINATA_SECRET_API_KEY_goes_here"
- Now, copy all of the ABI's from the folder
artifacts-zk/contracts/
and copy the ABI's of all of the contracts and paste them into theinterface/src/ABI
folder. - Now, inside of the
interface
folder install the dependencies using the given command below:npm install
- After installing all of the dependencies, run the application using the given command below:
npm run dev
We welcome contributions from the community! Feel free to submit pull requests or raise issues on the project's GitHub repository.
This project is under active development. The provided information represents the current vision and may be subject to change.
- Project Website: https://zktune.vercel.app/
- Project GitHub Repository: https://github.com/mishraji874/zkTune-Decentralized-Music-Streaming-Platform