로열티 수집 및 청구하기

0) Prerequisites

1) 로열티 토큰 수집

자식 IP Asset을 통해 로열티 토큰을 수집할 수 있으며, 이는 로열티 %에서 내 몫을 나타낸다.

딱 한번 수행되며, 누구나 호출할 수 있다. (다른 사람이 내 로열티 토큰 수집하는데 도움을 주더라도 상관 없다.)

로열티 토큰은 IP 계정에 입금된다.

이 함수는 claimRoyalty함수처럼, 미청구된 수익 토큰(Revenue Token)에 대해서도 청구할 수 있다. 하지만, 로열티 토큰은 아직 수집되지 않았기 때문에, 본래 ancestor에게 입금되지는 않는다.

const response = await client.royalty.collectRoyaltyTokens({
  parentIpId: "0xC92EC2f4c86458AFee7DD9EB5d8c57920BfCD0Ba",
  royaltyVaultIpId: "0xC92EC2f4c86458AFee7DD9EB5d8c57920BfCD0Ba",
  txOptions: { waitForTransaction: true }
});

console.log(`Collected royalty token ${response.royaltyTokensCollected} at transaction hash ${response.txHash}`)
Request Type
export type CollectRoyaltyTokensRequest = {
  parentIpId: Address;
  royaltyVaultIpId: Address;
  txOptions?: TxOptions;
};

트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 royaltyTokensCollected 가 리턴된다.

2) 수익 청구하기

자식 IP Asset에 지급한 실제 금액의 %(수익 토큰,Revenue Token)를 청구하기 위해 claimRoyalty 함수를 호출할 수 있다.

하지만, 이 작업 수행 전에 트랜잭션에 제공할 snapshotIds가 필요하다.

이 함수는 누가 스냅샷을 찍었는지 중요하지 않기 때문에 누구나 호출 가능하다.

트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 snapshotId 가 리턴된다.

이제 아래와 같이 claimRevenue를 호출할 수 있다. 제공된 스냅샷 시점의 로열티 토큰 소유자만이 이 함수를 호출할 수 있다.

IP 계정에게 청구하기

일반적으로 claimRevenue는 트랜잭션을 실행하는 지갑에 수익 토큰을 청구한다. 그러나 IP 계정의 ipIdaccount 매개변수로 전달하여 특정 IP 계정에게 청구할 수도 있다.

트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 claimableToken이 리턴된다.

Reference

Last updated