Launch 5-Song Album via AWS S3

This use case is ideal for artists who want to register their work, such as an album with 5 songs, as intellectual property (IP). If you’re looking to store your album's assets and metadata on AWS S3 and protect each song under a unified IP Collection, this scenario will walk you through the steps to tokenize and license your music as NFTs, ensuring your creative work is protected and properly licensed.

Pre-requisites

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

Step 1: Upload asset folder to AWS S3

In this step, each file will be uploaded to S3's presigned URLIn this step, you will upload a folder of assets to AWS S3 using the uploadAssetToURL function from the Asset module, utilizing S3's presigned URLs for each file.

const urls = await Promise.all(
  files.map(async (file, index) => {
  return await korSDK.uploadAssetToURL(
    file,
    inputValues[index]
    );
  })
);

By executing this step, you successfully upload each file in your asset folder to AWS S3 through S3's presigned URLs using the uploadAssetToURL function. This ensures efficient and secure cloud storage for your assets, allowing them to be easily accessed and managed in the subsequent steps of the workflow.

Step 2: Create metadata and upload to AWS S3

In this step, you will create metadata files for your assets and upload them to AWS S3 using the uploadAssetToURL function and S3's presigned URLs.

const urls = await Promise.all(
  files.map(async (file, index) => {
  return await korSDK.uploadAssetToURL(
    file,
    inputValues[index]
    );
  })
);

By executing this step, you successfully generate metadata files for your assets and upload them to AWS S3 via presigned URLs using the uploadAssetToURL function. This step ensures that your asset metadata is securely stored and ready for use in subsequent processes, such as minting and IP registration.

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 using the NFT module's createIPCollection function, allowing users to mint NFTs from the 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 using the createIPCollection function. With parameters like name, symbol, licenseTermID, licensors, maxSupply, and mintPrice, you establish a collection where users can mint NFTs.

Step 4: Mint NFT from Artist collection

In this step, you will mint an NFT from your artist collection using the NFT module's mintIPFromIPCollection function, automatically registering it as an IP and enforcing the attached license.

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. The minted NFT is automatically registered as intellectual property, inheriting the licensing terms defined at the collection level.

By following this workflow, you’ve successfully registered your album as intellectual property, allowing you to store your assets and metadata on AWS S3. Each song is tokenized and licensed under a unified IP Collection, ensuring your music is protected and properly licensed as NFTs, safeguarding your creative rights in the digital space.

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