Mint and Register in Own Collection

This use case is ideal for artists who have a digital asset—such as a piece of digital art, music, or any other creative work—that they want to tokenize as part of a new NFT collection and register it as an IP. Whether you're an artist launching your first collection or adding a new body of work to your portfolio, this process is for those looking to start fresh with a dedicated collection of NFTs. It guides you through uploading your asset, creating a new NFT collection, minting the asset as an NFT, registering it as intellectual property (IP) and attaching a license to protect your creative rights. Additionally, users can enable royalties, pay royalties, and claim royalties using a snapshot ID.

Pre-requisites

You can refer this link for basic setup before you can start with the following steps.

Step 1: Upload file to IPFS using pinata

In this step, you securely upload your digital asset to a decentralized storage system using the Asset module's uploadAssetToIpfs function.

const { ipfsHash } = await korSDK.uploadAssetToIpfs(
  file, // asset to be uploaded
  'pinata'
);

By executing this step, the file is successfully uploaded to IPFS via Pinata, and you receive the ipfsHash, which serves as the unique identifier for your asset. This hash is crucial for referencing your asset in subsequent steps, as it ensures decentralized, immutable storage and access to the file.

Step 2: Create metadata and upload to IPFS using Pinata

You generate the metadata that describes your asset (e.g., title, description, creator info) and store it on IPFS using the Asset module's uploadMetaDataToIpfs function.

const { ipfsHash } = await korSDK.uploadMetadataToIpfs(
    { name: 'Cold Play', symbol: 'TKN', baseURI: 'ipfs://' },
    'pinata'
);

By executing this step, the metadata for your NFT is successfully uploaded to IPFS via Pinata, and you receive the ipfsHash. This hash acts as a unique identifier for your NFT's metadata, ensuring that it is securely stored and easily accessible in a decentralized manner.

Step 3: Create your own collection

You set up a dedicated collection for your NFTs, which acts as a container for your assets using the NFT module's createCollection function.

By executing this step, you successfully create your own NFT collection using the korSDK. The createCollection function allows you to define the collection's name and symbol, establishing a distinct identity for your assets.

Step 4: Mint NFT for your asset

You officially mint your asset as an NFT, converting it into a token on the blockchain using the NFT module's mintFromCollection function.

By executing this step, you officially mint your asset as an NFT, transforming it into a token on the blockchain using the mintFromCollection function of the NFT module. This process involves specifying the collectionAddress, recipientAddress, and metadataURI, effectively linking your NFT to its associated metadata and ownership.

Step 5: Register minted NFT as an IP Asset

You register the NFT as an intellectual property (IP), giving it formal legal protection using the IP module's registerNFT function.

By executing this step, you register the minted NFT as an intellectual property (IP) using the registerNFT function from the IP module. This process involves specifying the licensors, tokenContract, and tokenId, effectively granting your NFT formal legal protection.

Step 6: Create a License

In this step, you create a license for your IP, defining the specific predefined terms such as royalty, commercial use, expiration, and derivative rights, using the createSmartLicense function from the License Module.

By executing this step, you create a customized license that outlines how your NFT can be used, shared, or monetized.

Step 7: Attach a License

In this step, you attach the newly created license to your IP, enforcing the terms established in Step 6 using the attachSmartLicense function.

By executing this step, your NFT is now governed by the license terms, formally binding it to the usage rights and conditions you set. This attachment ensures that all interactions with the NFT respect the specified licensing framework, safeguarding your intellectual property rights.

Step 8: Activate Royalty

In this step, you activate royalty on an IP using activateRoyalty function. This allows users to pay royalties and claim royalty tokens associated with the IP. The process involves creating a royalty token and distributing shares to the user, which can subsequently be further distributed by the user as needed.

By executing this step, you have successfully activated royalties for the IP. Users can now pay royalties and claim their respective royalty tokens.

Step 9: Pay Royalty

In this step, you pay royalty using payRoyalty function. The royalty tokens will be distributed among the holders based on their respective shares and will be available for them to claim.

By executing this step, you have successfully paid the royalty. A snapshot ID will be generated as output, and the tokens will be distributed among the holders based on their respective shares, making them available for claim.

Step 10: Claim Royalty

In this step, royalty token holders can claim their tokens using the collectRevenue function. The claim is made based on the snapshot ID generated during the royalty payment step.

By executing this step, you have successfully claimed your royalty tokens.

By following this workflow, you’ve successfully created and secured your NFTs while also registering them as intellectual property and attaching a license to it, enabling you to protect your creative assets on the blockchain. Additionally, you have implemented functionalities to activate, pay, and claim royalties.

If this specific approach doesn’t suit your use case, explore other tutorials to find the best fit for your NFT and IP needs!

Last updated