IP에 팁 주는 방법
SDK와 스마트 컨트랙트를 사용하여 IP 자산에 팁을 주는 방법을 배웁니다.
SDK 사용하기
이 튜토리얼에서는 TypeScript SDK를 사용하여 IP 자산에 돈을 보내는 방법(“팁”)을 배우게 됩니다.
설명
이 시나리오에서, 미키 마우스를 나타내는 부모 IP 자산이 있다고 가정해 봅시다. 다른 사람이 그 미키 마우스에 모자를 그려 파생(또는 “자식”) IP 자산으로 등록합니다. 라이선스 조건은 자식이 모든 상업적 수익의 50%를 부모와 공유해야 한다고 명시합니다(commercialRevShare = 50
). 다른 사람(제3자 사용자)이 와서 정말 멋지다고 생각해 파생 작품에 2 $WIP를 보내고 싶어 합니다.
이 예제의 목적상, 우리는 자식이 이미 파생 IP 자산으로 등록되어 있다고 가정할 것입니다. 이 방법을 배우는 데 도움이 필요하다면, 다음을 확인하세요: 파생 작품 등록하기.
- 부모 IP ID:
0x42595dA29B541770D9F9f298a014bF912655E183
- 자식 IP ID:
0xeaa4Eed346373805B377F5a4fe1daeFeFB3D182a
0. 시작하기 전에
튜토리얼을 시작하기 전에 완료해야 할 몇 가지 단계가 있습니다.
- 다음을 설치해야 합니다: Node.js와 npm. 이전에 코딩을 해보셨다면 이미 설치되어 있을 것입니다.
- Story Network Testnet 지갑의 개인 키를 다음에 추가하세요:
.env
file:
- 선호하는 RPC URL을
.env
파일에 추가하세요. 우리가 제공하는 공개 기본 URL을 사용할 수 있습니다:
- 의존성을 설치하세요:
1. Story Config 설정하기
다음 utils.ts
파일에 Story Config를 설정하기 위해 다음 코드를 추가하세요:
- 관련 문서: TypeScript SDK Setup
2. 파생 IP 자산에 팁 주기
이제 main.ts
파일을 생성하세요. 우리는 payRoyaltyOnBehalf
함수를 사용하여 파생 자산에 지불할 것입니다.
IP 자산에 [WIP로 지불하게 될 것입니다. 이 함수는 자동으로 동등한 양의 WIP를 래핑할 것입니다.** 둘 중 하나가 충분하지 않으면 실패할 것입니다.
화이트리스트에 등록된 수익 토큰
우리 프로토콜에 의해 화이트리스트에 등록된 토큰만 지불(“수익”) 토큰으로 사용될 수 있습니다. $WIP는 그 토큰 중 하나입니다. 그 목록을 보려면 here를 참조하세요.
이제 우리는 payRoyaltyOnBehalf
함수를 호출할 수 있습니다. 이 경우:
receiverIpId
는 파생(자식) 자산의ipId
입니다payerIpId
는zeroAddress
입니다. 왜냐하면 지불자는 제3자(모자를 쓴 미키 마우스가 멋지다고 생각하는 사람)이며, 반드시 다른 IP 자산일 필요는 없기 때문입니다token
는 $WIP의 주소입니다. 이는 hereamount
는 2입니다. 팁을 주는 사람이 2 $WIP를 보내고 싶어하기 때문입니다
3. 자식이 받을 수익 청구하기
이 시점에서 우리는 이미 튜토리얼을 마쳤습니다: IP 자산에 팁을 주는 방법을 배웠습니다. 하지만 자식과 부모가 받을 수익을 청구하고 싶다면 어떻게 해야 할까요?
자식은 2 $WIP를 받았습니다. 하지만 라이선스 조건의 commercialRevenue = 50
때문에 수익의 50%를 부모 IP와 공유한다는 것을 기억하세요.
자식 IP는 다음을 호출하여 1 $WIP를 청구할 수 있습니다: claimAllRevenue
function:
ancestorIpId
는 자금이 있는 로열티 금고와 연관된 IP 자산의ipId
입니다 (더 간단히 말하면, 이는 단순히 자식의ipId
입니다)currencyTokens
는 $WIP의 주소를 포함하는 배열입니다. 이는 hereclaimer
는 자식의 IP Royalty Vault와 관련된 로열티 토큰을 보유하는 주소입니다. 기본적으로, 이들은 IP 계정에 있으며, 이는 단순히 자식 자산의ipId
입니다
4. 부모가 받을 수익 청구하기
계속해서, 부모도 자신의 수익을 청구할 수 있어야 합니다. 이 예에서 부모는 1 WIP와 라이선스 조건의 commercialRevShare = 50
를 청구할 수 있어야 합니다.
우리는 claimAllRevenue
함수를 사용하여 받을 수익 토큰을 청구할 것입니다.
ancestorIpId
는 부모(“조상”) 자산의ipId
입니다claimer
는 부모의 IP Royalty Vault와 관련된 로열티 토큰을 보유하는 주소입니다. 기본적으로, 이들은 IP 계정에 있으며, 이는 단순히 부모 자산의ipId
입니다childIpIds
에는 자식 자산의ipId
가 포함될 것입니다royaltyPolicies
에는 로열티 정책의 주소가 포함될 것입니다. Royalty Module에서 설명한 대로, 이는RoyaltyPolicyLAP
또는RoyaltyPolicyLRP
입니다. 라이선스 조건에 따라 다릅니다. 이 경우, 라이선스 조건이RoyaltyPolicyLAP
를 지정한다고 가정해 봅시다. 간단히 Deployed Smart Contracts로 가서 올바른 주소를 찾으세요.currencyTokens
는 $WIP의 주소를 포함하는 배열입니다. 이는 here