Inspiration

We wanted to get out there and build something that isn't very common. At the same time, we wanted to solve a real-world problem. We pondered over issues that needed to be addressed and could be fixed by web3. That is when we came up with Muzilla

What it does

It is a music streaming platform + an nft marketplace. This platform is structured in such a way that it cuts down on the number of intermediaries required between an artist and their audience. Artists can sell limited edition albums and exclusive records to their fans. If the artists want, they can also relinquish all the rights of a particular track to the buyer. Muzilla is currently in its very early stages.

How we built it

We made use of TailWind-CSS and NextJS to handle the frontend. Nextjs also helped us in routing our apis. We used nft.storage to implement uploading to ipfs and keeping the data pinned to the nodes. We decided to utilize the Ethereum ecosystem and deployed the contract on a layer 2 network, Polygon. The NFTs follow the ERC1155 token standard. We chose this standard because of its flexibility and gas savings. We can create fungible, semi-fungible and non-fungible tokens. For example, for regular copies of an artist's albums, we use the fungibility (of copies of the same album) aspect of this standard. For limited/exclusive editions, we use the non-fungibility aspect.

Challenges we ran into

The go-to solution, that we found while scouring the internet for resources for getting a collection up and running was to create a supply, send it all to the owner/deployer of the contract and then transfer the tokens to whoever requests them. But we realized how this could lead to trust issues as this seems like a potential rug-pull scheme. As devs who build on Ethereum, we knew that we had to make this platform as trustless as possible. So, instead, we gave the power in the hands of the user to mint an NFT from a null address! We were having some trouble trying to figure out how to upload and access our data using nft.storage. Thanks to a tutorial by Ayush Sen on QuickNode, we did it! We are a fully remote team from different parts of India. All of us are of different ages and were busy with our own work. The workload on everyone was very high and it was tough to find time to dedicate to this project.

Accomplishments that we're proud of

Against all odds, a diverse team of individuals at different stages in their respective lives got together, found time, and made this project work. The visually and functionally stunning frontend is basically a class apart. Yogesh's hard work comes to life in the form of a beautiful website. The logo and the name of our service was decided by Prathamesh. He did a fantastic job. I, Samarth, along with Prathamesh handled the smart contract. This is the first time we have worked with the erc1155 standard and I'm glad to say that we handled it well.

What we learned

We learnt that ERC1155 is an amazing standard and though it may sound formidable, it isn't. It's plainly amazing and unlocks endless opportunities and use cases. We learned how to work as a team and fought against time constraints to get the job done. We are now getting familiar with ipfs and are realizing its power. It is essential for a decentralized future.

What's next for Muzilla

Muzilla is still in its very early stages. Muzilla in all its glory will be a full-fledged streaming service and an NFT marketplace. Artists will be able to completely transfer all the rights they have over a track as we will store the ownership data as metadata of a special NFT. This special NFT will only be made for those who are willing to sell their track's rights at some point in the future. To protect innocent new artists, a warning will be shown when an artist opts in for the creation of this special NFT. Max supply of regular albums and tracks will be set to an extraordinarily large number, making it as close to unlimited as possible. The ownership NFT however will only be one in the world. The max supply of special edition albums will be decided by the artist. We also plan to implement generative NFTs for displaying the name of the buyer and date of minting of super exclusive editions that artists create for their super-fans.

Had it been just a marketplace, using eth token would have sufficed. Since it is more than just that, we plan to introduce its very own token, MUZ. The tokenomics involve creating a scarcity, dependent on the number of people uploading to the platform. Everyone who connects their wallet to the website will get 4000muz. 100MUZ will be spent by the uploader if they are uploading a single song. Album uploading will be subsidized. Initially, 1 token will be given to the artist per 1 listen of their track. When the total number of uploaders reaches 1000, 1 token will be awarded for 10 listens, and so on. Once the number of uploaders reaches 10k, 1 token will be awarded for 100 listens. To protect smaller artists, the ones who have less than 500MUZ in their account for a month will get 1 token per unique listeners (unique to prevent exploitation of this system) for their next month. We will use Chainlink VRF to randomly give a mega bounty of MUZ tokens to the artists who have less than 200MUZ. This lottery will be held once every week. Donating tokens will also be a piece of cake in Muzilla

Built With

Share this project:

Updates