Project Info
Overview Notic3 is a decentralized platform designed to empower content creators, offering a blockchain-based alternative to platforms like Patreon (and that one unholy platform). Our mission is to eliminate intermediaries, giving creators direct access to their supporters while ensuring secure, transparent, and tamper-proof data. Built fully on-chain, Notic3 exemplifies the spirit of decentralization by providing trustless interactions and immutable records. While many blockchain-based projects use off-chain solutions to sidestep technical challenges, our team committed to going all-in on decentralization. This approach presented unique obstacles, but it also set us apart, reinforcing our belief in the transformative potential of blockchain for creative industries.
Inspiration
Blockchain technology offers more than just financial innovation—it provides a new way to manage ownership, access, and rewards. Inspired by these capabilities, we wanted to build something that could give content creators control over their work and revenue streams without relying on centralized platforms that charge high fees or control the distribution of content. While the Web3 space has already seen some early experiments in creator tools, many platforms are still hybrids—leveraging blockchain partially but retaining centralized components. We wanted to explore what would happen if we stayed true to the core ethos of decentralization. Notic3 was born from that idea: a fully on-chain platform that doesn't compromise on its principles. Our Approach We chose to build Notic3 entirely on-chain to guarantee transparency, immutability, and censorship resistance. This meant every interaction—from subscription payments to content access—would be recorded directly on the blockchain (available to the general public). This decision came with trade-offs: Secure data storage: Managing private files like videos or audio on-chain is insecure if unencrypted, so we had to creatively manage metadata to ensure users are truly accessing content they own. Novelty of Move and Sui: The Move programming language, native to blockchains like Aptos and Sui, was completely new to our team. Learning it on the fly was one of the biggest challenges we faced, in addition to learning about the Sui SDK. Smart Contract Design: Writing complex smart contracts to handle subscription models, creator payouts, and access permissions directly on-chain was difficult. Key Features Subscription-based Payments: Creators can set up recurring subscriptions that allow supporters to access premium content. Payments are processed seamlessly on-chain, ensuring transparency and immediate distribution of funds. Web3 Storage: Everything about our app is in the chain, including the file storage. We utilized Sui's newest Data Storage solution, Walrus, to store encrypted files on the chain using blobs allowing creators to leverage the chain for distribution of their content. Conclusion Working on Notic3 has been an incredible experience. We took on ambitious challenges, and despite the difficulties, we believe we succeeded in delivering a powerful product. Along the way, we learned new technologies, embraced decentralized principles, and grew both as developers and as a team. Notic3 is proof of what can be achieved when you stay true to your mission, even when easier paths are available. We are excited to continue developing the platform beyond the hackathon and see how it can empower creators around the world. Thank you for the opportunity to present Notic3, and we look forward to feedback and collaboration as we continue this journey!
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Analysis
View
Metric
- 42
- 40
- 36
- 26
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
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
5 of 5 appear in the indexed code.
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
490 KB
Source files
68
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
kevinru2023/notic3
86 files · 1.7 MB · @ 618e06e
Structure
Interface
54 files · 63%Screens, components and styles rendered to the user.
Application logic
13 files · 15%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
- YAML51%
- TypeScript48%
- CSS1%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 48- @dotlottie/react-player
- @hookform/resolvers
- @mysten/dapp-kit
- @mysten/sui
- @mysten/wallet-standard
- @mysten/zklogin
- @radix-ui/react-alert-dialog
- @radix-ui/react-avatar
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-label
- @radix-ui/react-popover
- @radix-ui/react-separator
- @radix-ui/react-slot
- @radix-ui/react-tabs
- @radix-ui/react-toast
- @radix-ui/react-tooltip
- @tanstack/react-query
- +30 more
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
Built with Move and Sui SDKVerified
Project built with Move, Sui blockchain (per Built With tags)
Claimed on Devposthigh confidencemove/sources/subscription.move:1— Move module targeting Sui (uses sui::table, sui::clock, sui::coin, sui::sui::SUI) implements the core contractsrc/app/(dashboard)/creator/[address]/page.tsx:143— frontend uses Sui transaction builder (tx.setGasBudget, tx.moveCall, tx.object, tx.pure with bcs) indicating Sui SDK integration
Creator profile registration on-chainVerified
Creators are onboarded/registered as part of the decentralized creator platform (implied by 'giving creators direct access to their supporters')
Claimed on Devpostmedium confidencemove/sources/subscription.move:24— register_creator entry function creates a Creator object and records it in a shared CreatorRegistrysrc/app/(dashboard)/create/components/CreateProfileForm.tsx:109— frontend form calls tx.moveCall targeting subscription::register_creator, wiring creator profile creation to the chain
Direct creator payouts without intermediariesVerified
Payments are processed seamlessly on-chain, ensuring transparency and immediate distribution of funds, eliminating intermediaries
Claimed on Devposthigh confidencemove/sources/subscription.move:169— transfer::public_transfer(payment, creator_subscription.creator) sends the subscription payment coin directly to the creator's address with no intermediary or fee-taking step
Next.js / TypeScript / Tailwind web appVerified
Built with next.js, tailwindcss, typescript (Built With tags); README is the default create-next-app boilerplate
Claimed on readmehigh confidencesrc/app/layout.tsx:1— Next.js App Router layout file presenttailwind.config.ts:1— Tailwind CSS configuration file present, confirming the tailwindcss/typescript/Next.js stack
On-chain subscription based paymentsVerified
Creators can set up recurring subscriptions that allow supporters to access premium content, with payments processed on-chain
Claimed on Devposthigh confidencemove/sources/subscription.move:149— subscribe entry function accepts a Coin<SUI> payment, transfers it directly to the creator via transfer::public_transfer, and records a Subscription with start_time/end_time based on subscription_durationsrc/app/(dashboard)/creator/[address]/page.tsx:147— frontend calls tx.moveCall targeting subscription::subscribe, passing the payment coin and user public key, wiring the UI to the on-chain subscription flow
Secure/encrypted metadata for private content accessVerified
Managing private files on-chain required creatively managing metadata so only entitled users can access content they own
Claimed on Devpostmedium confidencemove/sources/subscription.move:116— content() entry function stores a per-user encrypted key/iv (EncryptedBlobData) in a Table keyed by user_address, so only authorized subscribers' entries hold the decryption material for a given blobsrc/hooks/queries.ts:36— encryptFile uses AES-GCM with a per-upload key/iv before the file ever leaves the browser, matching the 'encrypted metadata' approach described
Smart contracts for subscription models, payouts, and access permissionsVerified
Writing complex smart contracts to handle subscription models, creator payouts, and access permissions directly on-chain
Claimed on Devposthigh confidencemove/sources/subscription.move:1— Move module notic3::subscription implements CreatorSubscription, Subscription, Content/EncryptedBlobData, and entry functions register_creator, initialize, content, and subscribe covering subscription setup, payout, and per-user content access recordsmove/tests/subscription_tests.move:1— dedicated Move test file exists for the subscription module, indicating the contract logic was exercised with tests
Web3 storage via Walrus (encrypted blob storage)Verified
Everything about the app is on-chain including file storage, using Sui's Walrus to store encrypted files as blobs
Claimed on Devposthigh confidencesrc/hooks/queries.ts:59— useUploadFile encrypts a file with AES-GCM in the browser then PUTs it to the Walrus testnet publisher endpoint (walrus-testnet-publisher.nodes.guru/v1/store)src/hooks/getdata.ts:71— useDownloadFile fetches the blob from the Walrus aggregator (aggregator.walrus-testnet.walrus.space) and decrypts it client-side with AES-GCMmove/sources/subscription.move:68— Content struct stores blob_id (String) and a Table of EncryptedBlobData (per-user enc_iv/enc_key) on-chain, linking Walrus blobs to on-chain access control
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.