project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Mojo

Mojo is an audio/media streaming platform that empowers musicians, artists and content creators through web3 and blockchain technologies using IPFS.

Mojo

Created At

HackFS 2022

Winner of

trophy

🏊‍♂️ Tableland — Pool Prize

trophy

🔟 Spheron — Top 10 project

Project Description

The Mojo web3 application allows users to upload their valuable digital assets easily and seamlessly to the IPFS Network via our upload user interface. Files can never get deleted, hacked, edited, stolen and are never saved to a server making them truly decentralised.

IPFS is a wonderful technology as it allows for content ownership, portability, and verifiability. It powers NFT marketplaces, individual websites, file-sharing platforms, and so much more. However, IPFS, the protocol, does not have a responsibility to match the experience of traditional cloud file services. Instead, that responsibility falls onto the shoulders of the IPFS adopters.

Mojo helps fill this gap and gives musicians, artists and all content creators an opportunity to broaden their social reach by offering specially crafted audio and media NFTs that allow their followers and subscribers to access special content or unique features they provide. This can include additional videos or written content for example.

Creators can Mint NFTs and then add different attributes and values and assign these to the NFT based on the media type. Creators will be able to manage their NFT's metadata using Tableland's relational metadata protocol for EVM chains. This freedom allows creators to update non-essential data, yet keeping the true values of the NFT's in tack and aligned with core NFT standards. Tableland also opens up doors to cross-chain relational data for NFTs and so much more, different content could be linked from the various networks offering users even more value for their hard earned crypto.

Music platforms and streaming is not new technology. However, IPFS is still new enough that streaming is not yet native to its content delivery. And that’s exactly why Pinata is releasing streaming video through their Dedicated Gateways. With streaming video in place, those who visit your gateway will no longer have to wait for a video file to download fully before it can be played. Just visit the URL and the video will start streaming, just like you would expect with Netflix or Youtube, just much better. Using this NFT based content, artists can already start offering content to holders using Pinata's Submarine which will be another great feature to integrate.

Mojo aims to further it's product by building the following key features in the Mojo web3 application:

  1. Artists should be able to upload their content in a secure and friendly manner.
  2. Listeners/viewers should be able to view music streams on the platform free of charge
  3. The Mojo platform should offer cryptocurrency-based payments to artists and their audiences.
  4. Music fans should have full access to their favourite artists with bonus content and features.
  5. Upon the purchase of a NFT, smart contracts should automatically process payments of royalty fees to digital artists and content creators.
  6. The platform should use blockchain to keep transactions and accounting transparent.
  7. The platform should let the artists keep most of the revenue they generate with very small fees to maintain the Mojo geek-o-system.
  8. Listeners/viewers shouldn’t have to contend with tacky ads. The platform should consider other monetisation options, For e.g., artists can set up an agreement with their fans to share revenue if fans share music, helping it to reach a wider audience. NFT based content, artist can offer content to holders using the new Pinata Submarine feature. Establish a very high standard of niche advertising to followers
  9. A simple user interface (UI) is important.
  10. A Defi element should be added to our token contracts to allow staking of NFTs

Technology Stack Mojo was built with or uses the following technologies in it's software life cycle: Etheruem (Solidity) - Smart contracts written in Solidity. IPFS & Filecoin - IPFS is used to store all our data including images, metadata, videos and also the Mojo website is served via IPFS and stored on Filecoin. Please note IPFS is used throughout the Mojo application including the Mint and Upload user interfaces, it is also used to store a copy of the Mojo website using Spheron. I have various services and helpers that handle the processing of files and creating direct ipfs:// links as well as gateway versions for content sharing links in case users don't have IPFS setup or their browsers don't support it yet. Refer to folder pwa > src > services > ipfs.js and IPFSNetwork.js which handle uploads and link creation. Within my mintNFT function I also use ipfs to create and store NFT metadata (this feature is still in WIP) Tableland - Tableland was used to create a SQL table on smart contract creation which creates a relational table to store the tokenId and external_url. The NFT is created in normal fashion, but additional information is then stored in a separate table which will be joined and stitched together to provide the NFT with a new tokenUri serving the metadata from Tableland Tableland Queries

https://testnet.tableland.network/query?mode=list&s=SELECT%20*%20FROM%20mojo_80001_554

https://testnet.tableland.network/query?s=SELECT%20%27id%27,id,%27external_link%27,external_link%20FROM%20mojo_80001_554%20WHERE%20id%3D12

Polygon - Mojo is deployed to the Polygon Mumbai network and uses Matic for payments and minting, Mumbai Testnet for demo purposes only please! Spheron - The Mojo web app is deployed seamlessly using Spheron, and served to the world via IPFS, also stored on Filecoin. Hardhat - Hardhat takes care of all my deployments and smart contract compilation. Vue.js - I just like the vue from here ;) Pinia - Store management using Pinia SCSS - Austin Powers Styling, Yeah Baby!

A buidl by Craig Moss, hope you enjoyed!

How it's Made

Built with Vue.js, Pinia and Javascript for the front-end. Web3 integrated to empower our blockchain application. Smart contracts written in Solidity. Utilises IPFS and Filecoin for our storage and content delivery needs. Tableland handles our custom mutable NFT metadata and attributes, this was a bit tricky to get working, but learnt so much, was a good experience for me Hardhat for our contract compilation and deployments. Deployed to Polygon's Mumbai test network for the purposes of the Hackathon. Uses Spheron for deployments to our website and stored on Filecoin.

I would like to mention that I really enjoyed the Spheron experience, it was very user friendly to move my site from Netlify to Spheron I would highly recommend all developers give them a try.

Lastly, thanks to EthGlobal for making these events awesome.

background image mobile

Join the mailing list

Get the latest news and updates