1. What is an External Royalty Policy?
It is a smart contract that inherits a specific interface calledIExternalRoyaltyPolicy, which defines the view function below:
IExternalRoyaltyPolicy.sol
registerExternalRoyaltyPolicy function in RoyaltyModule.sol.
2. How does it work?
Letโs follow an example of a new External Royalty Policy called โPolicy Xโ.External Royalty Policies are selected by users
An IPA owner decides the royalty policy he/she wants to allow the IP to be remixed with. There are multiple options of royalty rules that can be chosen such as LAP, LRP and other External Royalty Policies. Letโs say the user decides to mint a license token with โPolicy Xโ. After that, IP2 remixes IP1 and IP3 remixes IP2 and we have the situation as the image below:
- The royalty policy address
- โPolicy Xโ address in the example
- The percentage of royalty tokens the parent demands from derivatives. This percentage can have different meanings depending on the royalty policy being used - ie. it can be a relative percentage, an absolute percentage, an adjusted percentage according to specific rules, etc.
- 10% between IP1 and IP2
- 50% between IP2 and IP3
External Royalty Policies receive royalty tokens from their usersโ IPs
Following the example, when each remix is made and during theonLinkToParents function call in RoyaltyModule.sol, the function getPolicyRtsRequiredToLink is called on the โPolicy Xโ address.
IExternalRoyaltyPolic.sol
- โPolicy Xโ receives 3% of RT2 token supply that it can then redistributed to its userbase. IP1 owner wanted 10%, however - letโs assume for the sake of the example - that due to the specific use case of โPolicy Xโ and its custom logic, the IP2 owner is granted a special status in the platform in which it it has a 70% discount on the % share it has to give parent IPs due to having a very large distribution network to promote IPs. Therefore, instead of having to give 10% as the license percentage indicated it only gives 3%.
- โPolicy Xโ receives 50% of RT3 token supply that it can then redistributed to its userbase.

External Royalty Policies redistribute value back to their users according to custom rules
There are two ways in which an External Royalty Policy can redistribute value back to its users:- Send Royalty Tokens directly to its users
- Keep the Royalty Tokens in the External Royalty Policy contract and have users claim Revenue Tokens through the said contract


- 500k WIP are claimed by the IP Account 3 which had 50% of RT3 token supply
- 100k WIP are claimed by the IP1 Royalty Vault which has 10% of RT3 token supply via
claimByTokenBatchAsSelffunction - 400k WIP are claimed by โPolicy Xโ which has 40 of RT3 token supply. This amount is further split by โPolicy Xโ custom contract according to its specific rules - which define y% and z% - to its users.

