> ## Documentation Index
> Fetch the complete documentation index at: https://docs.story.foundation/llms.txt
> Use this file to discover all available pages before exploring further.

# PIL Terms

> Detailed explanation of all terms available in the Programmable IP License

<CardGroup cols={3}>
  <Card title="Read the Overview" href="/concepts/programmable-ip-license/overview" icon="pills" color="yellow">
    If you haven't already, read the Programmable IP License (PIL💊) overview.
  </Card>

  <Card title="Preset PIL Terms" href="/concepts/programmable-ip-license/pil-flavors" icon="thumbs-up" color="#51af51">
    Since there are so many possible combinations of the PIL, we have created
    preset "flavors" for you to use while developing.
  </Card>

  <Card title="PIL Legal Text" href="https://github.com/piplabs/pil-document/blob/main/pil.pdf" icon="scroll" color="#ccb092">
    Check out the actual PIL legal text. It is very human-readable for a legal
    text!
  </Card>
</CardGroup>

# On-chain terms

Most PIL terms are on-chain. They are implemented in the `IPILicenseTemplate.sol` contract as a `PILTerms` struct [here](https://github.com/storyprotocol/protocol-core-v1/blob/main/contracts/interfaces/modules/licensing/IPILicenseTemplate.sol).

```solidity IPILicenseTemplate.sol theme={null}
/// @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 defaultMintingFee;
  uint256 expiration;
  bool commercialUse;
  bool commercialAttribution;
  address commercializerChecker;
  bytes commercializerCheckerData;
  uint32 commercialRevShare;
  uint256 commercialRevCeiling;
  bool derivativesAllowed;
  bool derivativesAttribution;
  bool derivativesApproval;
  bool derivativesReciprocal;
  uint256 derivativeRevCeiling;
  address currency;
  string uri;
}
```

## Descriptions

| Parameter                   | Values           | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| --------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `transferable`              | True/False       | If false, the License Token cannot be transferred once it is minted to a recipient address.                                                                                                                                                                                                                                                                                                            |
| `royaltyPolicy`             | Address          | The address of the royalty policy contract.                                                                                                                                                                                                                                                                                                                                                            |
| `defaultMintingFee`         | #                | The fee to be paid when minting a license.                                                                                                                                                                                                                                                                                                                                                             |
| `expiration`                | #                | The expiration period of the license.                                                                                                                                                                                                                                                                                                                                                                  |
| `commercialUse`             | True/False       | You can make money from using the original IP Asset, subject to limitations below.                                                                                                                                                                                                                                                                                                                     |
| `commercialAttribution`     | True/False       | If true, people must give credit to the original work in their commercial application (eg. merch)                                                                                                                                                                                                                                                                                                      |
| `commercializerChecker`     | Address          | Commercializers that are allowed to commercially exploit the original work. If zero address, then no restrictions are enforced.                                                                                                                                                                                                                                                                        |
| `commercializerCheckerData` | Bytes            | The data to be passed to the commercializer checker contract.                                                                                                                                                                                                                                                                                                                                          |
| `commercialRevShare`        | \[0-100,000,000] | Amount of revenue (from any source, original & derivative) that must be shared with the licensor (a value of 10,000,000 == 10% of revenue share). This will collect all revenue from tokens that are whitelisted in the [RoyaltyModule.sol contract](https://github.com/storyprotocol/protocol-core-v1/blob/e339f0671c9172a6699537285e32aa45d4c1b57b/contracts/modules/royalty/RoyaltyModule.sol#L50). |
| `commercialRevCeiling`      | #                | If `commercialUse` is set to true, this value determines the maximum revenue you can earn from the original work.                                                                                                                                                                                                                                                                                      |
| `derivativesAllowed`        | True/False       | Indicates whether the licensee can create derivatives of his work or not.                                                                                                                                                                                                                                                                                                                              |
| `derivativesAttribution`    | True/False       | If true, derivatives that are made must give credit to the original work.                                                                                                                                                                                                                                                                                                                              |
| `derivativesApproval`       | True/False       | If true, the licensor must approve derivatives of the work.                                                                                                                                                                                                                                                                                                                                            |
| `derivativesReciprocal`     | True/False       | If false, you cannot create a derivative of a derivative. Set this to true to allow indefinite remixing.                                                                                                                                                                                                                                                                                               |
| `derivativeRevCeiling`      | #                | If `commercialUse` is set to true, this value determines the maximum revenue you can earn from derivative works.                                                                                                                                                                                                                                                                                       |
| `currency`                  | Address          | The ERC20 token to be used to pay the minting fee. The token must be registered on Story.                                                                                                                                                                                                                                                                                                              |
| `uri`                       | String           | The URI of the license terms, which can be used to fetch [off-chain license terms](/concepts/programmable-ip-license/pil-terms#off-chain-terms-to-be-included-in-uri-field).                                                                                                                                                                                                                           |

# 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.

| Parameter                       | Description                                                                                                                                                                                                                                           |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `territory`                     | Limit usage of the IP to certain regions and/or countries. By default, the IP can be used globally.                                                                                                                                                   |
| `channelsOfDistribution`        | Restrict 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. |
| `attribution`                   | If the original author should be credited for usage of the IP. By default, you do not need to provide credit to the original author.                                                                                                                  |
| `contentStandards`              | Set 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".                                                                                    |
| `sublicensable`                 | Derivative 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.                                                                       |
| `aiLearningModels`              | Whether or not the IP can be used to develop AI learning models. By default, the IP **cannot** be used for such development.                                                                                                                          |
| `restrictionOnCrossPlatformUse` | Limit 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.                                                                                                        |
| `governingLaw`                  | The laws of a certain jurisdiction by which this license abides. By default, this is California, USA.                                                                                                                                                 |
| `alternativeDisputeResolution`  | Please see section 3.1 (s) [here](https://github.com/piplabs/pil-document/blob/main/pil.pdf).                                                                                                                                                         |
| `PILUri`                        | The URI to the PIL legal terms.                                                                                                                                                                                                                       |
| `additionalParameters`          | There may be other terms the licensor would like to add and they can do so in this tag.                                                                                                                                                               |
