> For the complete documentation index, see [llms.txt](https://techdocs.korprotocol.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://techdocs.korprotocol.io/sdk-reference/client_methods/license_client.md).

# License Client

## LicenseClient

The `LicenseClient` is used to register and manage licenses.

### Methods

* attachLicenseToCollection
* attachLicenseTermsToIp
* registerLicenseTerms
* mintLicenseToken

### attachLicenseToCollection

The `attachLicenseToCollection` function is used to associate a license with a specific collection of intellectual property (IP) assets.

| Method                      | Type                                                                                         |
| --------------------------- | -------------------------------------------------------------------------------------------- |
| `attachLicenseToCollection` | `(request: attachLicenseToCollectionRequest) => Promise< attachLicenseToCollectionResponse>` |

* **Parameters**:
  * `request.collectionIpId`: The collection Ip Id.
  * `request.licenseTermId`: The identifier for the specific license term in the request.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.

### attachLicenseTermsToIp

The `attachLicenseTermsToIp` function is used to associate a license with a specific Ip asset.

| Method                   | Type                                                                                   |
| ------------------------ | -------------------------------------------------------------------------------------- |
| `attachLicenseTermsToIp` | `(request: attachLicenseTermsToIpRequest) => Promise< attachLicenseTermsToIpResponse>` |

* **Parameters**:
  * `request.ipId`: The identifier for the Ip.
  * `request.licenseTermId`: The identifier for the license term.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.

### registerLicenseTerms

The `registerLicenseTerms` function is used to register a new license terms.

| Method                 | Type                                                                               |
| ---------------------- | ---------------------------------------------------------------------------------- |
| `registerLicenseTerms` | `(request: registerLicenseTermsRequest) => Promise< registerLicenseTermsResponse>` |

* **Parameters**:
  * `request.licenseTerm`: The new license term.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
  * `response.termId` - The term id for newly registed term

### mintLicenseToken

The `mintLicenseToken` function is used to mint a license token that can be used for creating derivatives.

| Method             | Type                                                                       |
| ------------------ | -------------------------------------------------------------------------- |
| `mintLicenseToken` | `(request: mintLicenseTokenRequest) => Promise< mintLicenseTokenResponse>` |

* **Parameters**:
  * `request.licenseId`: - The identifier for the specific license in the request.
  * `request.recipient`: - The recipient's information for the request.
  * `request.amount`: - The amount specified in the request.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
