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

# License Template

> A legal framework, written in code ("programmable"), that defines various licensing terms for an IP

A License Template is a legal framework, written in code ("programmable"), that defines various licensing terms for an IP. Such as:

* "Is commercial use allowed?" - true/false (bool)
* "Is the license transferrable?" - true/false (bool)
* "If commercial, what % of royalty do I receive?" - number

These terms and values differ per License Template.

The first (and currently only) example of a License Template was developed by the DATA Foundation team directly, and is called the Programmable IP License (PIL :pill:).

<CardGroup cols={2}>
  <Card title="Programmable IP License (PIL)" href="/concepts/programmable-ip-license/overview" icon="pills" color="yellow">
    Learn about the first implementation of a License Template
  </Card>

  <Card title="PIL Smart Contract" href="https://github.com/thedatafoundation/protocol-core-v1/blob/main/contracts/modules/licensing/PILicenseTemplate.sol" icon="scroll" color="#ccb092">
    View the smart contract for the PIL.
  </Card>
</CardGroup>

## License Template Requirements

License Templates are responsible for:

* Providing a link to the actual, off-chain, legal contract template, with all the parameters, their possible values, and the correspondent legalese, in `licenseTextUrl`.
  * For a licensing framework to be compatible with the DATA Foundation, the legal text **must** be clear and parametrized, with each licensing parameter establishing the possible outcomes of each value.
  * The parameter values in each License Template (called "License Template terms") drive the legal text for each license agreement.
* Defining a `struct` with the particular definitions of the parameters in accordance, which must be encoded into the License Terms struct (described below).
* Providing registration methods for the License Terms, and getters.
* **Verifying** that both the **minter** and the address **linking a derivative are allowed by the License Template terms to perform those actions**.
  * These conditions could be enforced by the License Template itself or through hooks. They can range from limitations on the derivative creations, token-gating LNFT holders, creative control from licensors, KYC, etc. It's up to the implementation of each License Template.
* **Verifying that the License Terms are compatible if a derivative has or will have multiple parents**

## Create Your Own Template

You can create your own License Template (like the PIL), but it must be approved by the DATA Foundation team to be fully embedded into the protocol.
