Compose multiple NFTs into one. Royalties are split between all contributing NFTs when a sale is made. This allows supply chain and value capture of derivatives and extensions via NFTs.
This project allows multiple NFTs to be composed into a single NFT (a CNFT, short for composable NFT). The resultant NFT can then be traded, and royalties from such trades will be split among the creators of the underlying NFTs. Essentially, this allows royalty sharing between joint NFT projects or derivatives. It allows a creator to produce a derivative of an NFT or release something that increases the value of another NFT, and allow both the original NFT's creator(s) and the new one to have a share of the royalties earned. This enable value capture in long NFT-based supply chains.
As an example, for music NFTs, there can be NFTs for:
We intend to use this tool primarily to enable collaboration between creators on assets for the metaverse.
Most of the project at this stage comprises of smart contracts to enable NFT composition and royalty sharing. These were built upon openzeppelin's smart contracts. NFT composition is attained by having the user send their NFT to the smart contract and then assigning these received NFTs to a CNFT they've minted. Each CNFT has a corresponding RoyaltyHandler contract, where royalty payments are routed to and then split between the CNFT creator and underlying/child NFT creators.
We did not have much time for the actual front-end being a one-dev team and having started late. Instead what we have are some wireframes of what this could look like and where we're going with this build.
On that note, I've found that NFTPort's APIs were exactly what we would need to enable users to view the NFTs in their accounts and other creators' accounts. They could then purchase or use their NFTs to create a combined/composed NFT. By providing the CNFT contract, we could also showcase combined NFTs that are being minted and the NFTs they are composed of. We intend to continue building this out with NFTPort. We only wished that they supported more chains too!