{"id":26973100,"url":"https://github.com/br8bit/iprchain","last_synced_at":"2025-09-18T23:47:06.998Z","repository":{"id":276037963,"uuid":"927978192","full_name":"br8bit/iprchain","owner":"br8bit","description":"Onchain Intellectual Property Registry built with Rust, Anchor, Metaplex Core","archived":false,"fork":false,"pushed_at":"2025-05-16T10:25:40.000Z","size":527,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T08:02:24.092Z","etag":null,"topics":["anchor","c4-model","capstone-project","rust","solana"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/br8bit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-05T21:17:41.000Z","updated_at":"2025-05-16T10:25:35.000Z","dependencies_parsed_at":"2025-02-05T23:36:39.605Z","dependency_job_id":"b27d6389-b61c-4e8b-9a21-f81262e37021","html_url":"https://github.com/br8bit/iprchain","commit_stats":null,"previous_names":["br8bit/solana-capstone-project","br8bit/iprchain"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/br8bit/iprchain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/br8bit%2Fiprchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/br8bit%2Fiprchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/br8bit%2Fiprchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/br8bit%2Fiprchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/br8bit","download_url":"https://codeload.github.com/br8bit/iprchain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/br8bit%2Fiprchain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275852456,"owners_count":25540143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anchor","c4-model","capstone-project","rust","solana"],"created_at":"2025-04-03T09:44:51.512Z","updated_at":"2025-09-18T23:47:06.659Z","avatar_url":"https://github.com/br8bit.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPRChain - Onchain Intellectual Property Registry\n\nIPRChain is a decentralized platform on the Solana blockchain designed to enable individuals and organizations to securely register and verify ownership of their intellectual property and copyrights.\n\nBy utilizing blockchain’s immutability and transparency, IPRChain ensures that all processes are permanently recorded on-chain, providing indisputable proof of ownership.\n\nThe platform simplifies the intellectual property registration process, making it accessible globally and eliminating the reliance on traditional centralized organizations. Users will receive digital proof of their ownership, enhancing trust and reducing disputes in intellectual property claims.\n\n## Architecture\n\n### Core Components\n\n1. **IP Registry**\n   - Creator registers an IP, the protocol generates a unique identifier (IP ID).\n   - This identifier is stored in the IP Registry (a PDA).\n   - Metadata (title, creator, description, rights, etc.) is hashed and stored on-chain, while the full content can be stored off-chain (e.g., IPFS, Arweave).\n   - The registered IP is linked to NFTs to represent verifiable ownership.\n2. **Licensing**\n   - The creator defines licensing terms (usage rights, royalty rules).\n   - These licenses define:\n     - Who can use the IP (public, private, specific entities)\n     - How it can be used (commercial vs. non-commercial)\n     - Revenue-sharing terms (percentage of royalties, upfront fees, etc.)\n   - Other users discover the IP according to the set terms.\n   - A licensee accepts the license and pays the required fees.\n   - The protocol grants access to the IP.\n3. **Derivative Tracking System**\n   - A licensee creates a derivative work, registering it on the protocol.\n   - A new IP ID is generated but remains linked to the original work for attribution.\n4. **Economic \u0026 Incentive Layer**\n   - The derivative work is listed on a marketplace for sale.\n   - The marketplace reports sales to the protocol.\n   - The protocol’s revenue system calculates royalty splits.\n   - Funds are automatically distributed to the original creator and new contributor(s).\n\n## Accounts\n\n```mermaid\nclassDiagram\n\n%% -- Core Accounts --\nclass IpAccount {\n    owner: Pubkey\n    mint: Pubkey\n    ip_hash: [u8; 32]\n    metadata_uri: String\n    created_at: i64\n}\n\nclass LicenseAccount {\n    ip_account: Pubkey,\n    licensee: Pubkey,\n    terms: LicenseTerms,\n    status: LicenseStatus,\n    total_royalties_paid: u64,\n    last_payment_date: i64,\n}\n\n%% -- Supporting Structs/Enums --\nclass LicenseTerms {\n    fee: u64\n    expiration: i64\n    royalty_percent: u8\n    commercial: bool\n}\n\nclass LicenseStatus {\n    \u003c\u003cenumeration\u003e\u003e\n    Active\n    Revoked\n    Expired\n}\n\n%% -- External Connections --\nclass MetaplexTokenMetadata {\n    mint: Pubkey\n    uri: String\n    royalties: RoyaltyConfig\n}\n\nclass Arweave {\n    content_hash: String\n    json_uri: String\n}\n\n%% -- Royalty Configuration --\nclass RoyaltyConfig {\n    royalty_basis_points: u16\n    royalty_share: Pubkey\n    recipients: Vec \u003c RoyaltyRecipient \u003e\n    %% Metaplex-standard royalty structure\n}\n\nclass RoyaltyRecipient {\n    address: Pubkey,\n    share: u8, // Percentage share (sum to 100)\n}\n\n\n%% -- Relationships --\nIpAccount --\u003e Arweave : \"metadata_uri points\\nto off-chain JSON\"\nIpAccount --\u003e MetaplexTokenMetadata : \"uses mint address\\nfor ownership via NFT\"\nLicenseAccount --\u003e IpAccount : \"references\\nlicensed IP\"\nLicenseAccount --\u003e LicenseTerms : \"contains\"\nLicenseAccount --\u003e LicenseStatus : \"tracks\"\nLicenseTerms --\u003e MetaplexTokenMetadata : \"royalties enforced\\nvia Metaplex standard\"\nLicenseTerms --\u003e RoyaltyConfig : \"converted to\\nbasis points (1% = 100)\"\nMetaplexTokenMetadata --\u003e RoyaltyConfig : \"stores\"\nRoyaltyConfig --\u003e RoyaltyRecipient: \"stores\"\n```\n\n## Sequence Diagrams\n\n### Creator\n\n```mermaid\nsequenceDiagram\n    participant Creator\n    participant Frontend as React Frontend\n    participant Backend as Node.js Backend\n    participant Solana as Solana Program\n    participant Arweave as Arweave/IPFS\n    participant Phantom as Phantom Wallet\n\n    %% Creator Registration Flow\n    Creator-\u003e\u003eFrontend: Upload IP File\n    activate Frontend\n        Frontend-\u003e\u003eFrontend: Compute SHA-256 Hash\n        Frontend-\u003e\u003eBackend: Check Hash Uniqueness (hash)\n        activate Backend\n            Backend-\u003e\u003eSolana: PDA Exists?(hash)\n            alt Hash Exists\n                Solana--\u003e\u003eBackend: Error: Duplicate\n                Backend--\u003e\u003eFrontend: Registration Denied\n                Frontend--\u003e\u003eCreator: Show Error\n            else\n                Backend--\u003e\u003eFrontend: Proceed\n                Frontend-\u003e\u003eArweave: Store File\n                Arweave--\u003e\u003eFrontend: CID\n                Frontend-\u003e\u003ePhantom: Request Signature\n                Phantom--\u003e\u003eFrontend: Signed TX\n                Frontend-\u003e\u003eBackend: Register IP (hash, CID)\n                Backend-\u003e\u003eSolana: Mint SPL Token (hash, CID)\n                Solana-\u003e\u003eSolana: Create PDA Account\n                Solana--\u003e\u003eBackend: TX Confirmation\n                Backend--\u003e\u003eFrontend: Success\n                Frontend--\u003e\u003eCreator: Display Certificate\n            end\n        deactivate Backend\n    deactivate Frontend\n```\n\n### Startup\n\n```mermaid\nsequenceDiagram\n    participant Startup\n    participant Frontend as React Frontend\n    participant Backend as Node.js Backend\n    participant Solana as Solana Program\n\n    %% Bulk Upload Flow\n    Startup-\u003e\u003eFrontend: Bulk Upload CSV\n    activate Frontend\n        loop For Each IP\n            Frontend-\u003e\u003eFrontend: Validate Entry\n            Frontend-\u003e\u003eBackend: Process Bulk Entry\n            Backend-\u003e\u003eSolana: Batch Registration\n        end\n        Solana--\u003e\u003eBackend: Bulk TX Receipt\n        Backend--\u003e\u003eFrontend: Bulk Complete\n        Frontend--\u003e\u003eStartup: Summary Report\n    deactivate Frontend\n```\n\n### Lawyer\n\n```mermaid\nsequenceDiagram\n    participant Lawyer\n    participant Frontend as React Frontend\n    participant Backend as Node.js Backend\n    participant Solana as Solana Program\n    participant Arweave as Arweave/IPFS\n\n    %% Verification Flow\n    Lawyer-\u003e\u003eFrontend: Verify Ownership (CID)\n    activate Frontend\n        Frontend-\u003e\u003eBackend: Request Verification\n        activate Backend\n            Backend-\u003e\u003eSolana: Query PDA (CID)\n            Solana--\u003e\u003eBackend: Registration Data\n            Backend-\u003e\u003eArweave: Retrieve File (CID)\n            Arweave--\u003e\u003eBackend: File Content\n            Backend-\u003e\u003eBackend: Verify Hash Match\n            Backend--\u003e\u003eFrontend: Validation Report\n        deactivate Backend\n        Frontend--\u003e\u003eLawyer: Display Legal Proof\n    deactivate Frontend\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbr8bit%2Fiprchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbr8bit%2Fiprchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbr8bit%2Fiprchain/lists"}