Automate and track your NFT royalties with blockchain transparency
Live Demo - creatorstream.lovable.app | Video Demo | Documentation
Project: CreatorStream
Team: BROTHERHOOD
Developer: Rohan Kumar
Email: 123131rkorohan@gmail.com
Repository: https://github.com/rohan911438/CreatorStream
Built for Forte Hacks to solve NFT creator payment tracking using Flow blockchain and Dapper Wallet integration.
CreatorStream is a decentralized application built on the Flow blockchain that automates NFT royalty tracking and distribution for digital creators. It eliminates manual tracking, provides transparent on-chain records, and enables automated revenue splits among collaborators.
- NFT creators struggle to track royalties across multiple marketplaces
- Manual spreadsheet tracking is time-consuming and error-prone
- No transparent way to verify royalty payments
- Difficult to manage revenue splits with collaborators
- Automated Tracking: Record all royalty payments on Flow blockchain
- Smart Splits: Automatically calculate and distribute revenue shares
- Real-time Analytics: Visual dashboards showing earnings trends
- Blockchain Verified: Every transaction is transparent and auditable
- Multi-Wallet Support: Works with Dapper Wallet and Blocto
- Dapper Wallet & Blocto support
- Seamless wallet switching
- Secure authentication via Flow Client Library (FCL)
- Session persistence
- Overview: Total earnings, pending payouts, recent transactions
- Analytics: Interactive charts showing royalty trends over time
- Transactions: Complete history of all royalty payments
- Splits: Manage collaborator revenue distribution
- Notifications: Real-time alerts for new payments
- Payouts: Track upcoming and completed distributions
- RoyaltyTracker Smart Contract (Cadence)
- On-chain storage of all royalty records
- Immutable transaction history
- Split validation (must sum to 100%)
- Event emissions for tracking
- Modern, responsive UI built with React + TypeScript
- Dark/Light theme support
- Mobile-friendly design
- Real-time data updates
- Smooth animations with Framer Motion
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ USER INTERFACE โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Landing โ โ Dashboard โ โ Analytics โ โ
โ โ Page โ โ Overview โ โ Charts โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โTransactions โ โ Splits โ โ Notifications โ โ
โ โ History โ โ Management โ โ & Alerts โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FLOW CLIENT LIBRARY (FCL) โ
โ Wallet Authentication โ
โ Dapper Wallet | Blocto Wallet โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FLOW BLOCKCHAIN โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ RoyaltyTracker Smart Contract (Cadence) โ โ
โ โ โ โ
โ โ โข RoyaltyRecord Structure โ โ
โ โ โข RoyaltySplit Management โ โ
โ โ โข Tracker Resource (User Storage) โ โ
โ โ โข Event Emissions โ โ
โ โ โ โ
โ โ Functions: โ โ
โ โ โโ recordRoyalty() โ โ
โ โ โโ createSplit() โ โ
โ โ โโ updateSplit() โ โ
โ โ โโ getRoyaltyRecords() โ โ
โ โ โโ getRoyaltySplits() โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ Contract Address: 0xf8d6e0586b0a20c7 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BACKEND API (Optional) โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Express.js โ โ Dune API โ โ Supabase โ โ
โ โ Routes โ โ Analytics โ โ Caching โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Frontend: React 18, TypeScript, Vite
- Styling: Tailwind CSS, shadcn/ui components
- Blockchain: Flow Blockchain, Cadence smart contracts
- Wallet: Flow Client Library (FCL), Dapper Wallet SDK
- State Management: React Hooks, TanStack Query
- Backend: Node.js Express (for API endpoints)
- Database: Supabase (optional off-chain caching)
- Language: Cadence 1.0
- Contract Name: RoyaltyTracker
- Network: Flow Emulator (Development) / Flow Testnet (Staging)
- Contract Address (Emulator):
0xf8d6e0586b0a20c7 - Developer Wallet:
0xf8d6e0586b0a20c7
// Core Structures
- RoyaltyRecord: Tracks individual payments
- RoyaltySplit: Manages collaborator percentages
- Tracker Resource: User's personal royalty tracker
// Functions
- recordRoyalty(): Add new royalty payment
- createSplit(): Set up revenue distribution
- updateSplit(): Modify existing splits
- getRoyaltyRecords(): Query all payments
- getRoyaltySplits(): Query all splits-https://creatorstream.netlify.app/
| Property | Value |
|---|---|
| Contract Name | RoyaltyTracker |
| Network | Flow Emulator |
| Contract Address | 0xf8d6e0586b0a20c7 |
| Deployment Transaction | 39c83feaa0ddc3df1b1d791fae7c65a2f4235d7813bfd6bc6c54c02bebffb34e |
| Storage Path | /storage/RoyaltyTracker |
| Public Path | /public/RoyaltyTracker |
Tracker Initialization:
- Transaction ID:
46dfa450e71449ee3648d2aacabafe52c3d36c745192030bf16a55367d32670f - Block Height: 4
- Status: โ SEALED
Sample Royalty Record:
- Transaction ID:
6a737caecb6be2007047377d82f1742a5bdd462ab990182df130b1fc5e7cb186 - NFT ID: 12345
- Amount: 15.50 FLOW
- Marketplace: NBA Top Shot
- Status: โ SEALED
Sample Split Creation:
- Transaction ID:
d134d67e3c7dbfecb9bad9b21956691052a87d19ce1aca2bfda91f2a1d77f975 - Collaborators: 2
- Distribution: 60% / 40%
- Status: โ SEALED
- Node.js 18+ and npm
- Flow CLI (for contract deployment)
- Git
- Clone the repository
git clone https://github.com/rohan911438/CreatorStream.git
cd CreatorStream- Install dependencies
npm install- Start Flow Emulator (in separate terminal)
cd CreatorSream
flow emulator start- Start the development server
npm run dev- Open your browser
http://localhost:5173
# Run both frontend and backend
npm run dev:full
# Or run separately
npm run dev # Frontend only
npm run server # Backend only- Click "Connect Dapper Wallet" on the landing page
- Authenticate through Dapper Wallet popup
- Your wallet address will be displayed in the dashboard
- Navigate to the dashboard
- Click "Initialize Tracker" button
- Confirm the transaction in your wallet
- Wait for blockchain confirmation
- Go to "Transactions" section
- Click "Record New Royalty"
- Enter details:
- NFT ID
- Amount (in FLOW)
- Marketplace (e.g., NBA Top Shot, NFL All Day)
- Transaction hash
- Submit and confirm
- Navigate to "Royalty Splits" section
- Click "Create New Split"
- Add collaborators:
- Wallet addresses
- Percentage allocation (must sum to 100%)
- Submit and confirm on blockchain
- Check "Analytics" page for:
- Earnings over time charts
- Marketplace breakdown
- Top earning NFTs
- Monthly trends
creator-stream-dash/
โโโ src/
โ โโโ components/
โ โ โโโ dashboard/ # Dashboard components
โ โ โโโ ui/ # shadcn/ui components
โ โโโ hooks/
โ โ โโโ use-dapper-wallet.ts
โ โ โโโ use-flow.ts # Flow blockchain hook
โ โโโ lib/
โ โ โโโ flow-config.ts # FCL configuration
โ โ โโโ flow-service.ts # Blockchain service layer
โ โ โโโ utils.ts
โ โโโ pages/
โ โโโ Landing.tsx
โ โโโ Dashboard.tsx
โโโ CreatorSream/ # Flow project
โ โโโ cadence/
โ โ โโโ contracts/
โ โ โ โโโ RoyaltyTracker.cdc
โ โ โโโ transactions/
โ โ โ โโโ initialize_tracker.cdc
โ โ โ โโโ record_royalty.cdc
โ โ โ โโโ create_split.cdc
โ โ โโโ scripts/
โ โ โโโ get_royalty_records.cdc
โ โ โโโ get_royalty_splits.cdc
โ โโโ flow.json
โโโ server/ # Backend API
โ โโโ routes/
โ โโโ index.js
โโโ package.json
Frontend:
src/lib/flow-service.ts- Blockchain interaction layersrc/hooks/use-flow.ts- React hook for Flow operationssrc/lib/flow-config.ts- FCL configuration
Smart Contracts:
CreatorSream/cadence/contracts/RoyaltyTracker.cdc- Main contractCreatorSream/cadence/transactions/- Transaction templatesCreatorSream/cadence/scripts/- Query scripts
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run server # Start backend API
npm run dev:full # Run frontend + backend# 1. Deploy contract
cd CreatorSream
flow project deploy --network emulator
# 2. Initialize tracker
flow transactions send ./cadence/transactions/initialize_tracker.cdc \
--network emulator --signer emulator-account
# 3. Record test royalty
flow transactions send ./cadence/transactions/record_royalty.cdc \
12345 15.50 0xf8d6e0586b0a20c7 "NBA Top Shot" "0xabc123" \
--network emulator --signer emulator-account
# 4. Query records
flow scripts execute ./cadence/scripts/get_royalty_records.cdc \
0xf8d6e0586b0a20c7 --network emulator- โ Contract deployment
- โ Tracker initialization
- โ Royalty recording
- โ Split creation (with validation)
- โ Split updates
- โ Record queries
- โ Split queries
The app can be deployed via:
- Lovable (Click Share โ Publish)
- Vercel:
vercel deploy - Netlify: Drag & drop
dist/folder
To deploy to Flow Testnet:
- Create testnet account
flow accounts create-
Update flow.json with testnet account
-
Deploy contract
flow project deploy --network testnet- Update contract address in
src/lib/flow-service.ts
- Track royalties from NBA Top Shot moments
- Monitor NFL All Day collectible earnings
- Analyze which NFTs generate most revenue
- Export data for tax purposes
- Split royalties among team members automatically
- Transparent distribution (everyone sees the same data)
- Update splits as team composition changes
- Historical record of all distributions
- Integration-ready API for automated royalty reporting
- On-chain verification of payments
- Reduced support tickets about missing payments
- โ Core royalty tracking
- โ Manual payment recording
- โ Split management
- โ Basic analytics
- Automated marketplace integrations (NBA Top Shot API)
- Direct payout execution via smart contracts
- Mobile app (React Native)
- Multi-chain support
- Creator DAOs with governance
- Royalty NFTs (tradeable revenue shares)
- AI-powered royalty predictions
- Tax report generation
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Team BROTHERHOOD
Rohan Kumar - Full-Stack Developer & Blockchain Engineer
- GitHub: @rohan911438
- Email: 123131rkorohan@gmail.com
- Role: Architecture, Smart Contracts, Frontend, Flow Integration
This project is licensed under the MIT License - see the LICENSE file for details.
- Forte / Flow Team for the amazing blockchain infrastructure
- Dapper Labs for Dapper Wallet and NBA Top Shot inspiration
- Forte Hacks for organizing this hackathon
- shadcn for the beautiful UI components
- Flow Community for excellent documentation
- Email: 123131rkorohan@gmail.com
- GitHub Issues: https://github.com/rohan911438/CreatorStream/issues
- Discord: Join our community
- Repository: https://github.com/rohan911438/CreatorStream
- Flow Documentation: https://docs.onflow.org/
- Cadence Language: https://cadence-lang.org/
- Dapper Wallet: https://www.meetdapper.com/
- Forte Platform: https://forte.io/
Built with โค๏ธ for Forte Hacks 2025
Powered by Flow Blockchain ๐ | Secured by Dapper Wallet ๐
ยฉ 2025 CreatorStream by Team BROTHERHOOD. All rights reserved.
