For Developers


Easy Mode: We Have Preset PIL Terms

Check the PIL Flavors here.

PIL is the first License Agreement for medial license developed by Story Protocol and inspired by Token Bound License. If you haven't already, read the overview: Programmable IP License (PILπŸ’Š)


PIL Legal Text with Explanation

If you'd like to walk through the PIL legal text with helpful explanation attached, check it out here.

On-chain terms

Most PIL terms are on-chain. They are implemented in the IPILicenseTemplate contract as a PILTerms struct here.

/// @notice This struct defines the terms for a Programmable IP License (PIL).
/// These terms can be attached to IP Assets.
struct PILTerms {
    bool transferable;
    address royaltyPolicy;
    uint256 mintingFee;
    uint256 expiration;
    bool commercialUse;
    bool commercialAttribution;
    address commercializerChecker;
    bytes commercializerCheckerData;
    uint32 commercialRevShare;
    uint256 commercialRevCelling;
    bool derivativesAllowed;
    bool derivativesAttribution;
    bool derivativesApproval;
    bool derivativesReciprocal;
    uint256 derivativeRevCelling;
    address currency;
    string uri;


transferableTrue/FalseIf false, the License Token cannot be transferred once it is minted to a recipient address.
royaltyPolicyAddressThe address of the royalty policy contract. The royalty policy must have been approved by Story Protocol in advance.
mintingFee#The fee to be paid when minting a license.
expiration#The expiration period of the license.
commercialUseTrue/FalseYou can make money from using the original IP Asset, subject to limitations below.
commercialAttributionTrue/FalseIf true, people must give credit to the original work in their commercial application (eg. merch)
commercializerCheckerAddressCommercializers that are allowed to commercially exploit the original work. If zero address, then no restrictions are enforced.
commercializerCheckerDataBytesThe data to be passed to the commercializer checker contract.
commercialRevShare# [0-100]Percentage of revenue (from any source, original & derivative) that must be shared with the licensor (a value of 10 == 10% of revenue share).

This will collect all revenue from tokens that are whitelisted in the RoyaltyModule.sol contract.
commercialRevCelling#If commercialUse is set to true, this value determines the maximum revenue you can earn from the original work.
derivativesAllowedTrue/FalseIndicates whether the licensee can create derivatives of his work or not.
derivativesAttributionTrue/FalseIf true, derivatives that are made must give credit to the original work.
derivativesApprovalTrue/FalseIf true, the licensor must approve derivatives of the work.
derivativesReciprocalTrue/FalseIf true, derivatives of this derivative can be created indefinitely as long as they have the exact same terms.
derivativeRevCelling#If commercialUse is set to true, this value determines the maximum revenue you can earn from derivative works.
currencyAddressThe ERC20 token to be used to pay the minting fee. The token must be registered in story protocol.
uriStringThe URI of the license terms, which can be used to fetch off-chain license terms.

Off-chain terms to be included in uri field

Some PIL terms must be stored off-chain and passed in the uri field above. This is because these terms are often more lengthy and/or descriptive, so it would not make sense to store them on-chain.

TerritoryLimit usage of the IP to certain regions and/or countries.

By default, the IP can be used globally.
Channels of DistributionRestrict usage of the IP to certain media formats and use in certain channels of distribution.

By default, the IP can be used across all possible channels of distribution.

Examples: "television", "physical consumer products", "video games", etc.
AttributionIf the original author should be credited for usage of the IP.

By default, you do not need to provide credit to the original author.
Content StandardsSet content standards around use of the IP.

By default, no standards apply.

Examples: "No-Hate", "Suitable-for-All-Ages", "No-Drugs-or-Weapons", "No-Pornography".
SublicensableDerivative works can grant the same rights they received under this license to a 3rd party, without approval from the original licensor.

By default, derivatives may not do so.
AI Learning ModelsWhether or not the IP can be used to develop AI learning models.

By default, the IP can be used for such development.
Restriction On Cross-Platform UseLimit licensing and creation of derivative works solely on the app on which the IP is made available.

By default, the IP can be used anywhere.
Governing LawThe laws of a certain jurisdiction by which this license abides.

By default, this is California, USA.
Alternative Dispute ResolutionPlease see section 3.1 (s) here.
Additional License ParametersThere may be other terms the licensor would like to add and they can do so in this tag.