IPScope is a comprehensive analytics platform for tracking and analyzing Intellectual Property (IP) assets on the Story Protocol blockchain. The platform provides detailed insights into royalty income, asset performance, derivative works, and licensing information with a clean, minimalist design and optimized performance.
- Framework: React 18 with Vite
- Styling: Tailwind CSS with custom design system
- State Management: React Context API
- Routing: React Router
- Icons: Lucide React
- Accessibility: WCAG 2.1 AA compliant
- Port: 5173/5174
- Runtime: Node.js
- Framework: Express.js
- Port: 3001
- API Integration: Story Protocol API + StoryScan API
- Performance: Optimized with connection pooling and rate limiting
- Caching: Intelligent data caching for improved performance
- Base URL:
https://api.storyapis.com/api/v4 - Endpoints Used:
/assets- Fetch IP assets by owner/assets/{ipId}- Get individual asset details/assets/edges- Get derivative works (parent-child relationships)/transactions- Get transaction history/disputes- Get dispute information/licenses- Get license information/royalty-policies- Get royalty policy details
- Base URL:
https://www.storyscan.io/api/v2 - Endpoints Used:
/transactions- Get detailed transaction data/tokens- Get token information/prices- Get price data for currency conversion
IPScope/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ AssetTable.jsx
β β β βββ LicenseCard.jsx
β β β βββ RemixDetailModal.jsx
β β β βββ ChildrenList.jsx
β β β βββ StatCard.jsx
β β β βββ QuickStats.jsx
β β β βββ OnChainAnalytics.jsx
β β β βββ SkeletonComponents.jsx
β β β βββ EmptyState.jsx
β β β βββ ErrorState.jsx
β β β βββ OptimisticUpdates.jsx
β β β βββ DetailRow.jsx
β β βββ pages/ # Main application pages
β β β βββ ExplorerPage.jsx
β β β βββ AssetDetailPage.jsx
β β βββ utils/ # Utility functions
β β β βββ accessibility.js
β β βββ SearchContext.jsx
β β βββ App.jsx
β β βββ main.jsx
β βββ package.json
β βββ vite.config.js
βββ server/ # Backend Node.js application
β βββ src/
β β βββ controllers/ # API route handlers
β β β βββ asset.controller.js
β β βββ services/ # Business logic and API integration
β β β βββ storyProtocol.service.js
β β βββ routes/ # API route definitions
β β β βββ index.js
β β βββ index.js
β βββ package.json
βββ README.md
- Node.js 18+
- npm or yarn
- Story Protocol API key
- StoryScan API key(s)
Create .env file in the server directory:
PORT
STORY_PROTOCOL_API_KEY=your_story_protocol_api_key
STORYSCAN_API_KEY=your_storyscan_api_keyNote: Multiple StoryScan API keys are supported for improved performance and rate limiting.
- Clone the repository
git clone <repository-url>
cd IPScope- Install backend dependencies
cd server
npm install- Install frontend dependencies
cd ../client
npm install- Start the backend server
cd ../server
npm start- Start the frontend development server
cd ../client
npm run dev- Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
GET /api/assets?owner={address}- Get assets by ownerGET /api/assets/{ipId}- Get asset detailsGET /api/assets/{ipId}/children- Get derivative worksGET /api/assets/{ipId}/royalty-transactions- Get royalty transactions
GET /api/analytics/royalty- Get royalty analyticsGET /api/analytics/portfolio- Get portfolio statisticsGET /api/analytics/disputes- Get dispute analytics
The platform calculates royalties by:
- Fetching RoyaltyPaid events from Story Protocol
- Aggregating transaction data from StoryScan
- Converting currencies to WIP (Web3 IP)
- Providing real-time analytics and trends
- Parent Assets: Original IP assets
- Child Assets: Derivative works created from parent assets
- Descendants: All levels of derivative works
- Relationship Mapping: Visual representation of IP asset hierarchy
- PIL Terms: Programmable IP License terms
- Royalty Policies: Automated royalty collection rules
- Commercial Use: Rights for commercial utilization
- Derivatives: Permission for creating derivative works
- Transferability: Asset ownership transfer rights
- Batch Processing: Parallel API calls for faster data retrieval
- Rate Limiting: Client-side and server-side rate limiting
- Caching: Intelligent data caching for improved performance
- Pagination: Efficient handling of large datasets
cd server
npm testcd client
npm test- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
- Story Protocol for the blockchain infrastructure
- StoryScan for transaction data
- React and Vite communities
- Open source contributors
- Tailwind CSS for the design system
- Lucide React for the icon library
IPScope - Empowering creators with comprehensive IP asset analytics and royalty tracking on the Story Protocol blockchain.