IP Royalty Vault

Skip the Read - 1 Minute Summary

An IP Royalty Vault is a pool for all monetary inflows related to an IP Asset.

Every IP Asset has 100,000,000 Royalty Tokens associated with it, where each token represents the right to 0.000001% of that IPA's revenue ("Revenue Tokens") stored in the pool.

Revenue Tokens are ERC-20 tokens used for payment (ex. USDC). These tokens must be whitelisted by the protocol to be used.

Each IP Asset has an IP Royalty Vault, which acts as a pool for all monetary inflows related to an IP Asset's commercial exploration or from minting licenses. Anyone who holds Royalty Tokens (defined below) has the right to claim their share of this pool.

Token Terminology

  1. Royalty Tokens - the IP Royalty Vault contract is also the ERC-20 contract for the Royalty Tokens of each IP Asset. Each IP Asset has 100,000,000 Royalty Tokens associated, where each token represents 0.000001% of those gains. The holders of these Royalty Tokens can claim the Revenue Tokens (defined below) that are in the associated IP Royalty Vault.
  2. Revenue Tokens - these are the tokens used for payment (ie. ETH, USDC, etc). Royalty Tokens can be used to claim Revenue Tokens.
    1. An ERC-20 token must be whitelisted by governance in the RoyaltyModule.sol contract to be used as a Revenue Token in the Royalty Module.

Whitelisted Revenue Tokens

An ERC-20 token must be whitelisted by our protocol in the RoyaltyModule.sol contract to be used as a Revenue Token in the Royalty Module. Here are the whitelisted tokens (you can mint tokens directly from the link):

NetworkToken
Iliad (Story Testnet) v1.1SUSD ↗️
Iliad (Story Testnet) v1.2SUSD ↗️

How to obtain Royalty Tokens?

The first step to being able to claim revenue from an IP Asset that will receive it in the future is to obtain Royalty Tokens from that IP Asset. There are 3 ways to obtain Royalty Tokens of a given IP:

  1. Be the IPA creator: Upon registering an IP Asset, the IPA creator receives a portion of the Royalty Token supply. That portion can range from 0-100% depending on whether it has ancestors and how many royalty % does ancestors are entitled to.
  2. Own an IPA that is an ancestor of the IPA that receives revenue: The ancestor IPA may have the right to claim a % of the Royalty Tokens of a derivate IPA based on the royalty policy that is in place.
  3. Buy Royalty Tokens in the market: If Royalty Tokens are in the market, anyone can buy them.

Once any address owns Royalty Tokens of a given IPA, it is entitled to that % (% of the total supply of royalty tokens owned) of any future revenue token (that is whitelisted) received by the IPA.

Vault Inflows & Outflows

Inflows to Vault

There are 3 routes in which revenue tokens are recognized as inflows into a vault:

  • External flows - When capital enters a derivative chain which is when a new payment is made to a derivative chain.
    • Route 1: A new payment originates in the RoyaltyModule.sol contract via the functions payRoyaltyOnBehalf and payLicenseMintingFee.
  • Internal flows - When capital flows inside a derivative chain related to payments made previously that are being moved to an ancestor vault.
    • Route 2: Moving from a royalty policy contract to an ancestor vault via the function transferToVault located in LAP and LRP royalty policy contracts.
    • Route 3: Moving from a vault to another vault via the functions claimByTokenBatchAsSelf or claimBySnapshotBatchAsSelf located in the IpRoyaltyVault.sol contract. For route 3 to be possible the vault that is claiming revenue tokens needs to own Royalty Tokens of the vault being claimed from. Route 3 can be particularly useful when used together with external royalty policies.

Outflows from Vault

The capital outflows from a vault when a Royalty Token holder claims via the functions claimRevenueByTokenBatch or claimRevenueBySnapshotBatch.

One thing to note is that when an inflow to a vault occurs through any of the routes mentioned above the value is considered pending. Once the snapshot function is called that pending value is recognized.

What snapshot does is similar to taking the current pending value in a vault and dividing it proportionally to the number of Royalty Tokens each address holds at the moment snapshot is called. Due to gas cost reasons, snapshot is not called automatically whenever a payment is made, therefore please be aware the user needs to be holding the Royalty Tokens at the time snapshot is called in order to have the right to claim its share of the existing pending value.