완성된 코드
완성된 코드를 끝까지 따라가세요.
사전 준비 사항
튜토리얼을 시작하기 전에 완료해야 할 몇 가지 단계가 있습니다.- TypeScript SDK 설정 완료
- [선택 사항] Pinata로 이동하여 새 API 키를 만듭니다. JWT를
.env파일에 추가하세요:
.env
- [선택 사항]
pinata-web3의존성을 설치합니다:
Terminal
1. IP 메타데이터 설정
NFT와 IP에 메타데이터를 설정할 수 있지만, 꼭 그럴 필요는 없습니다. 그러기 위해 IPA Metadata Standard를 확인하고 NFT와 IP에 대한 메타데이터를 구성하세요.main.ts
2. NFT 메타데이터 설정
NFT 메타데이터는 ERC-721 Metadata Standard를 따릅니다.main.ts
3. IP 및 NFT 메타데이터를 IPFS에 업로드
별도의uploadToIpfs 파일에서 IP 및 NFT 메타데이터 객체를 IPFS에 업로드하는 함수를 만듭니다:
uploadToIpfs.ts
main.ts
4. NFT를 IP Asset으로 등록
새 IP를 등록하려면 먼저 NFT를 민팅해야 한다는 점을 기억하세요. 이 NFT는 IP의 기초 소유권을 나타냅니다. 그런 다음 이 NFT를 “등록”하면 IP Asset이 됩니다. 다행히도, 동일한 트랜잭션에서 NFT를 민팅하고 IP Asset으로 등록하기 위해registerIpAsset 함수를 사용할 수 있습니다.
이 함수는 민팅할 SPG NFT Contract가 필요합니다.
4a. 어떤 SPG NFT 컨트랙트 주소를 사용해야 하나요?
간편함을 위해 Aeneid 테스트넷에 미리 만들어둔 공용 컬렉션을 사용할 수 있습니다:0xc32A8a0FF3beDDDa58393d022aF433e78739FAbc. 메인넷에서, 또는 Aeneid에서 실제 시나리오를 테스트할 때에도, 아래의 “커스텀 ERC-721 컨트랙트 사용하기” 섹션에서 설명하는 대로 자체 컨트랙트를 만들어야 합니다.
커스텀 ERC-721 컨트랙트 사용하기
커스텀 ERC-721 컨트랙트 사용하기
우리가 제공하는 공용 컬렉션을 사용하는 것은 괜찮지만, 실제로 진행할 때에는 IP를 위한 자체 NFT 컬렉션을 만들어야 합니다. 이를 위해 두 가지 방법이 있습니다:
- ISPGNFT 인터페이스를 구현하는 컨트랙트를 배포하거나, SDK의 createNFTCollection 함수(아래 예시)를 사용해 대신 처리하게 합니다. 그러면 본인만 민팅할 수 있는 자체 SPG NFT Collection이 생깁니다.
createSpgNftCollection.ts
- 자체적으로 커스텀 ERC-721 NFT 컬렉션을 생성합니다. 작동하는 코드 예제는 여기에서 확인할 수 있습니다. 본인만의 커스텀 로직을 가진 커스텀 NFT 컨트랙트가 이미 있거나, IP 자체가 NFT인 경우에 유용합니다.
관련 문서:
ipAsset.registerIpAsset
main.ts
5. IP에 License Terms 추가
등록 과정 중에 IP에 License Terms를 첨부할 수 있습니다. 그러면 다른 사용자가 라이선스를 민팅하고 약관에 따라 제한된 방식으로 IP를 사용할 수 있게 됩니다.main.ts
6. 완성된 코드 보기
축하합니다, IP를 등록하고 license terms를 첨부했습니다!완성된 코드
완성된 코드를 끝까지 따라가세요.