Skip to content

ChestrNFT/splits

Repository files navigation

Protocol overview

Joyn is an ecosystem of talent, knowledge and resources for emerging creators to co-create, promote and launch NFT projects. We provide project blueprints (project page, milestones, prompts), web3 building blocks (NFT membership passes, royalty splits, airdrops, output collections), and community resources (network of co-creators and support programs)

Our mission is to make the process of creative collaboration accessible to as many as possible, and to empower every creator regardless of their number of followers, knowledge, or access to resources.

Looking into the future we want to become a go-to platform for metaverse content creation, and to see a lot of cross-pollination and remixing among the projects built with Joyn.

We fully embrace modularity and interoperability with our architecture. We have modules that extend the ERC721 standards, which provide functionalities beyond minting and transferring token instances.

Eg. NFT collections launched through Joyn out of the box allow project creators to split royalties among an arbitrary number of recipients, which means we could achieve shared royalties between everyone involved in the project.

This paves the way for open co-creation of web3 content, where all contributors may share ownership and royalties, and benefit directly from the project’s success.

With that as a foundation, this will also unlock content attribution / remixing as a new class of use case based on inter-referencing projects.

Smart Contracts

Here is high level System Diagram

SplitFactory.sol (175 sloc)

ERC721 contract responsible for:

  • Deploying split & royalty vaults contracts
  • Updating the platform fee and platform fee recipient of a royalty vault

Libraries used:

  • Openzeppelin Ownable

SplitProxy.sol (101 sloc)

Contract used for deploying instances of Splitter. We use the proxies for gas optimization and will allow us to upgrade our users contracts in the future.

Splitter.sol (195 sloc)

A contract that allows co-creators to share revenue generated by a project. This contract uses Merkle tree to verify if a user can claim a share of the revenue.

This contract is responsible for:

  • Defining revenue splitting rules
  • Allowing co-creators to claim revenue from sales of a collection

Additional information

Split

The splits repository has been forked from this mirror-xyz/splits Github repository.

More information about how the split mechanism works can be found here

Tests

A full set of unit tests are provided in the repo. To run these do the following:

Prepare local enviroment

  1. install nodejs, refer to nodejs
  2. run cp .env.example .env
  3. set those two env variables: ALCHEMY_API_KEY={your key} & DEPLOYER_PRIVATE_KEY={your private key}
  4. run npm install
  5. run npm run test command in terminal

About

Reward Split Implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •