Project Info
Cal Hacks / Berkeley RDI: Berkeley RDI Web3 Prize; Sui: Reimagine the internet with Sui
Blockify
Inspiration
The project was inspired by looking at the challenges that artists face when dealing with traditional record labels and distributors. Artists often have to give up ownership of their music, lose creative control, and receive only a small fraction of the revenue generated from streams. Record labels and intermediaries take the bulk of the earnings, leaving the artists with limited financial security. Being a music producer and a DJ myself, I really wanted to make a product with potential to shake up this entire industry for the better. The music artists spend a lot of time creating high quality music and they deserve to be paid for it much more than they are right now.
What it does
Blockify lets artists harness the power of smart contracts by attaching them to their music while uploading it and automating the process of royalty payments which is currently a very time consuming process. Our primary goal is to remove the record labels and distributors from the industry since they they take a majority of the revenue which the artists generate from their streams for the hard work which they do. By using a decentralized network to manage royalties and payments, there won't be any disputes regarding missed or delayed payments, and artists will have a clear understanding of how much money they are making from their streams since they will be dealing with the streaming services directly. This would allow artists to have full ownership over their work and receive a fair compensation from streams which is currently far from the reality.
How we built it
BlockChain: We used the Sui blockchain for its scalability and low transaction costs. Smart contracts were written in Move, the programming language of Sui, to automate royalty distribution. Spotify API: We integrated Spotify's API to track streams in real time and trigger royalty payments. Wallet Integration: Sui wallets were integrated to enable direct payments to artists, with real-time updates on royalties as songs are streamed. Frontend: A user-friendly web interface was built using React to allow artists to connect their wallets, and track their earnings. The frontend interacts with the smart contracts via the Sui SDK.
Challenges we ran into
The most difficult challenge we faced was the Smart Contract Development using the Move language. Unlike commonly known language like Ethereum, Move is relatively new and specifically designed to handle asset management. Another challenge was trying to connect the smart wallets in the application and transferring money to the artist whenever a song was streamed, but thankfully the mentors from the Sui team were really helpful and guided us in the right path.
Accomplishments we're proud of
This was our first time working with blockchain, and me and my teammate were really proud of what we were able to achieve over the two days. We worked on creating smart contracts and even though getting started was the hardest part but we were able to complete it and learnt some great stuff along the way. My teammate had previously worked with React but I had zero experience with JavaScript, since I mostly work with other languages, but we did the entire project in Node and React and I was able to learn a lot of the concepts in such a less time which I am very proud of myself for.
What we learned
We learned a lot about Blockchain technology and how can we use it to apply it to the real-world problems. One of the most significant lessons we learned was how smart contracts can be used to automate complex processes like royalty payments. We saw how blockchain provides an immutable and auditable record of every transaction, ensuring that every stream, payment, and contract interaction is permanently recorded and visible to all parties involved. Learning more and more about this technology everyday just makes me realize how much potential it holds and is certainly one aspect of technology which would rule the future. It is already being used in so many aspects of life and we are still discovering the surface.
What's next
We plan to add more features, such as NFTs for exclusive content or fan engagement, allowing artists to create new revenue streams beyond streaming. There have been some real-life examples of artists selling NFT's to their fans and earning millions from it, so we would like to tap into that industry as well. Our next step would be to collaborate with other streaming services like Apple Music and eliminate record labels to the best of our abilities.
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 5
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- Node.jsClaimed
6 of 7 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
27 KB
Source files
16
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ChiragSeth14/Blockify
33 files · 881 KB · @ d60f1a7
Structure
Application logic
16 files · 48%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript61%
- CSS17%
- Markdown12%
- Python5%
- HTML5%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
sui-dapp-frontend/package.json
npm · 12- @mysten/dapp-kit
- @mysten/sui
- @mysten/sui.js
- @tanstack/react-query
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- react
- react-dom
- react-router-dom
- react-scripts
- web-vitals
royalty_manager/package.json
npm · 5- @mysten/sui.js
- axios
- dotenv
- express
- querystring
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Attach a smart contract to music while uploading (create track on-chain)Verified
Artists attach smart contracts to their music while uploading it.
Claimed on Devposthigh confidenceroyalty_manager/sources/royalty_manager.move:32— create_new_track entry function mints a MusicTrack object with metadata and transfers it to the sender.sui-dapp-frontend/src/App.js:35— The Create Track form builds a moveCall to royalty_manager::create_new_track and signs/executes it via the connected wallet.
React frontend interacting with smart contracts via Sui SDKVerified
A React web interface interacts with the smart contracts via the Sui SDK.
Claimed on Devposthigh confidencesui-dapp-frontend/src/AppRouter.js:8— React Router renders a Create Track page and a Play Track page.sui-dapp-frontend/src/App.js:6— Uses @mysten/sui Transaction builder and dapp-kit hooks to construct and execute moveCall transactions against the deployed royalty_manager package.
Spotify API integration to track streamsVerified
Integrated Spotify's API to track streams in real time.
Claimed on Devposthigh confidenceroyalty_manager/spotify_auth.js:42— getCurrentlyPlayingTrack calls Spotify's /me/player/currently-playing endpoint and exposes it via an Express /currently-playing route, with token refresh handling.royalty_manager/main.py:31— A Python script authenticates to Spotify (client credentials) and queries the Spotify search API for artists.
Sui wallet integration in the web appVerified
Sui wallets were integrated to enable artists to connect their wallets.
Claimed on Devposthigh confidencesui-dapp-frontend/src/index.js:20— App is wrapped in @mysten/dapp-kit WalletProvider/SuiClientProvider configured for Sui devnet/mainnet.sui-dapp-frontend/src/App.js:5— Uses ConnectButton, useCurrentAccount, useCurrentWallet and useSignAndExecuteTransaction to connect a wallet and sign transactions.
Sui/Move smart contracts for music royaltiesVerified
Smart contracts were written in Move on the Sui blockchain to automate royalty distribution.
Claimed on Devposthigh confidenceroyalty_manager/sources/royalty_manager.move:1— A Move module royalty_manager defines a MusicTrack resource with track_id, owner, title, artist, value, royalties, and a SUI balance.royalty_manager/Move.toml:8— Package depends on the Sui framework, confirming this is a Sui/Move on-chain package.
Artist ownership control over music (transfer ownership)Code-supported
Artists have full ownership over their work.
Claimed on Devpostmedium confidenceroyalty_manager/sources/royalty_manager.move:37— The MusicTrack has an owner field and a transfer entry function that reassigns the object to a recipient, giving basic on-chain ownership/transfer control.
Direct SUI payments to artists / pay-per-streamCode-supported
Sui wallets enable direct payments to artists whenever a song is streamed.
Claimed on Devpostmedium confidenceroyalty_manager/sources/royalty_manager.move:41— play_track accepts a SUI Coin payment and joins it into the track's balance, but there is no function that withdraws or transfers that balance to the artist/owner.sui-dapp-frontend/src/PlayTrackPage.js:38— The Play Track page splits gas into a coin and passes it to play_track, so a payment is made on play — but funds accumulate in the track object rather than being paid out to the artist.
On-chain automated royalty distributionCode-supported
Smart contracts automate royalty distribution to artists.
Claimed on Devpostmedium confidenceroyalty_manager/sources/royalty_manager.move:49— distribute_royalties only increments a royalties counter using hardcoded rates; it does not transfer any funds, and its call is commented out inside play_track (line 46), so no actual distribution occurs.
Track earnings / real-time royalty tracking in the UICode-supported
Artists can track their earnings with real-time updates on royalties as songs are streamed.
Claimed on Devpostmedium confidencesui-dapp-frontend/src/OwnedObjects.js:6— getOwnedObjects query lists object IDs owned by the wallet, but only renders object IDs — no earnings/royalty amounts are displayed.sui-dapp-frontend/src/PlayTrackPage.js:108— The code intended to fetch and show updated track value/royalties is entirely commented out, so no earnings are actually surfaced to the user.
Automatically trigger royalty payments from Spotify streamsClaimed only
Spotify integration triggers royalty payments as songs are streamed, automating the payment process.
Claimed on Devposthigh confidenceNFTs for exclusive content / fan engagementClaimed only
Plan to add NFTs for exclusive content or fan engagement as new revenue streams.
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.