Launch 100-Song Album via IPFS

This use case is for artists who want to register a large body of work, such as an album consisting of multiple tracks (in this case, 100 songs), as intellectual property (IP). If you're looking to tokenize and protect each individual track under a single IP Collection, this process will guide you through uploading, creating metadata, and minting each song as a distinct NFT, all while enforcing licensing through the IP Collection framework.

In order to upload your asset folder to IPFS, you can use one of the following providers: 1. Pinata 2. Filebase (Recommended for large folders/files)

Pre-requisites

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

Step 1: Upload asset folder to IPFS using Filebase

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(
    ev.target.files,
    'filebase',
    { folderName: folderName, bucketName: bucketName }
);

By executing this step, the file is successfully uploaded to IPFS via Filebase, 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 Filebase

In this step, you will create metadata for your NFT and upload it to IPFS using the Asset module's uploadMetaDataToIpfs function, leveraging Filebase for secure storage.

const { ipfsHash } = await korSDK.uploadMetaDataToIpfs(
    metaDataJSONArray,
    'filebase',
    { folderName: folderName, bucketName: bucketName }
);

By executing this step, you successfully upload your NFT metadata to IPFS using Filebase, receiving an ipfsHash as a unique identifier for your asset.

Step 3: Create an Artist collection (which will contain NFT's that can be minted by users)

In this step, you will create an artist collection for your NFTs using the NFT module's createIPCollection function, allowing users to mint assets within this collection.

const data = await korSDK.createIPCollection({
  name: name,
  symbol: symbol,
  licenseTermID: licenseTermID,
  licensors: [licensor1, licensor2, licensor3],
  maxSupply: maxSupply,
  mintPrice: minPrice,
});

By executing this step, you successfully create an artist collection that will house your NFTs, using the createIPCollection function. By specifying parameters like name, symbol, licenseTermID, licensors, maxSupply, and mintPrice, you establish a unique framework for users to mint NFTs within your collection.

Step 4: Mint NFT from Artist collection

In this step, you will mint an NFT from your artist collection using the NFT module's mintFromCollection function, automatically registering it as intellectual property (IP) with the attached license terms.

const data = await korSDK.mintIPFromIPCollection({
  recipientAddress: recipientAddress,
  ipID: ipID,
  uri: baseTokenURI,
});

By executing this step, you successfully mint an NFT from your artist collection using the mintIPFromIPCollection function. This process links the minted NFT to the specified recipientAddress, ipID, and baseTokenURI, ensuring that it is automatically registered as intellectual property with the associated license.

By following this workflow, you’ve successfully registered a large body of work as intellectual property, allowing you to tokenize and protect each individual track within a single IP Collection. This process guides you through uploading, creating metadata, and minting each song as a distinct NFT, all while ensuring licensing terms are enforced through the IP Collection framework.

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