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
- 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.
- Revenue Tokens - these are the tokens used for payment (ie. ETH, USDC, etc). Royalty Tokens can be used to claim Revenue Tokens.
- 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):
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:
- 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.
- 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.
- 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 functionspayRoyaltyOnBehalf
andpayLicenseMintingFee
.
- Route 1: A new payment originates in the
- 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
orclaimBySnapshotBatchAsSelf
located in theIpRoyaltyVault.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.
- Route 2: Moving from a royalty policy contract to an ancestor vault via the function
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.
Updated 10 days ago