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๐Ÿ’Š)

It's 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;
}

Parameters implemented on-chain (as seen above)

ParameterValuesDescription
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/FalseIf true, the derivative can be used commercially. If not, only non-commercial use is allowed.
commercialAttributionTrue/FalseIf true, the commercial use must refer to the original IPA (credits, YouTube description link, watermark...)
commercializerCheckerAddressCommercializers that are allowed to commercially exploit the work. If zero address, then no restrictions are enforced.
commercializerCheckerDataBytesThe data to be passed to the commercializer checker contract.
commercialRevSharePercentagePercentage of revenue that must be shared with the licensor.
commercialRevCelling#The maximum revenue that can be generated from the commercial use of the work.
derivativesAllowedTrue/FalseIndicates whether the licensee can create derivatives of his work or not.
derivativesAttributionTrue/FalseIf true, the derivatives must refer to the original IPA (credits, YouTube description link, watermark...)
derivativesApprovalTrue/FalseIndicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
derivativesReciprocalTrue/FalseDerivatives of this derivative can be created indefinitely, as long as they have the exact same terms.
derivativeRevCelling#The maximum revenue that can be generated from the derivative use of the work.
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 parameters to be included in uri field

  1. Territory
  2. Channels of Distribution
  3. Attribution
  4. Content Standards
  5. Sublicensable
  6. AI Learning Model Prohibited
  7. Restriction On Cross Platform Use
  8. Governing Law
  9. Alternative Dispute Resolution
  10. Additional License Parameters