메인 콘텐츠로 건너뛰기
이 섹션에서는 IP Asset에서 License Token을 민팅하는 방법을 보여줍니다. IP Asset에 License Terms가 첨부되어 있는 경우에만 해당 IP Asset에서 License Token을 민팅할 수 있습니다. License Token은 ERC-721로 민팅됩니다. License Token을 민팅하는 데에는 두 가지 이유가 있습니다:
  1. 라이선스를 보유하고 기초 IP Asset을 라이선스에 명시된 대로 사용할 수 있도록 하기 위함(예: “적절한 출처 표기를 제공하고 수익의 5%를 공유하는 한 상업적으로 사용할 수 있음”)
  2. 라이선스 토큰을 사용해 다른 IP Asset을 그 파생물로 연결하기 위함. 다만, 나중에 보게 되겠지만 일부 SDK 함수는 파생물을 등록하기 위해 명시적으로 license token을 먼저 민팅할 필요가 없으며, 실제로는 내부적으로 처리해 줍니다.

사전 준비 사항

튜토리얼을 시작하기 전에 완료해야 할 몇 가지 단계가 있습니다.
  1. TypeScript SDK 설정 완료
  2. License Terms가 추가된 IP Asset. IPA에 License Terms를 추가하는 방법은 여기에서 확인할 수 있습니다.

1. 라이선스 민팅

IP Asset(ipId = 0x01)에 License Terms(licenseTermdId = 10)가 첨부되어 있다고 가정해 봅시다. 그 약관을 가진 License Token 2개를 특정 지갑 주소(0x02)로 민팅하고자 합니다.
일부 IP Asset에는 라이선스를 민팅하는 사용자가 defaultMintingFee를 지불해야 하는 라이선스 약관이 첨부되어 있을 수 있다는 점에 유의하세요. 그 예시는 TypeScript 튜토리얼에서 확인할 수 있습니다.
license token은 licenseTermsId가 이미 IP Asset에 첨부되어 있어 공개적으로 사용 가능한 라이선스가 된 경우에만 민팅할 수 있다는 점에 유의하세요. 단, IP 소유자는 IP Asset에 첨부되지 않은 licenseTermsId로 license token을 민팅하여 비공개 라이선스를 민팅할 수 있습니다.
main.ts
// you should already have a client set up (prerequisite)
import { client } from "./client";

async function main() {
  const response = await client.license.mintLicenseTokens({
    licenseTermsId: "10",
    licensorIpId: "0x641E638e8FCA4d4844F509630B34c9D524d40BE5",
    receiver: "0x641E638e8FCA4d4844F509630B34c9D524d40BE5", // optional. if not provided, it will go to the tx sender
    amount: 2,
    maxMintingFee: BigInt(0), // disabled
    maxRevenueShare: 100, // default
  });

  console.log(
    `License Token minted at transaction hash ${response.txHash}, License IDs: ${response.licenseTokenIds}`
  );
}

main();

1a. License Token 민팅에 제한 설정하기

이는 IP Asset의 소유자가 누가, 또는 어떻게 라이선스 토큰을 민팅하는지에 제한을 설정하고 싶을 때 참고할 사항입니다. 다음과 같은 작업이 가능합니다:
  • 민팅 가능한 라이선스 최대 수 설정
  • 민팅 주체/수량에 따른 동적 수수료 부과
  • 토큰 민팅 가능한 특정 지갑 화이트리스트 지정
… 등등. 자세한 내용은 문서의 License Config 섹션을 확인하세요.

2. 파생물 등록

이제 License Token을 민팅했으므로, 이를 보유하거나 IP Asset을 파생물로 연결하는 데 사용할 수 있습니다. 이는 다음 페이지에서 다루겠습니다. 다만, 나중에 보게 되겠지만 일부 SDK 함수는 파생물을 등록하기 위해 명시적으로 license token을 먼저 민팅할 필요가 없으며, 실제로는 내부적으로 처리해 줍니다.

2a. 필요하지 않은데 굳이 License Token을 사용할 이유가 있나요?

파생물을 등록하기 위해 License Token이 필요한 경우가 몇 가지 있습니다:
  • License Token이 비공개 라이선스 약관을 포함하고 있어, 소유자가 수동으로 민팅한 License Token이 있어야만 파생물로 등록할 수 있는 경우. 자세한 내용은 여기.
  • License Token(NFT)을 민팅할 때 mintingFee가 발생하지만 마켓플레이스에서 더 저렴한 가격에 살 수 있는 경우. 그러면 더 비싼 defaultMintingFee를 지불해야 하는 것보다 License Token으로 등록하는 것이 더 합리적입니다.