> 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/nft_client.md).

# NFT Client

## NFTClient

The `NFTClient` allows you to perform various operations related to NFTs.

### Methods

* createCollection
* mintFromCollection
* mintIpFromArtistCollection
* mintFromKorProtocol
* updateMetadata

### createCollection

The `createCollection` function is used to create a standard collection or an Artist collection.

| Method             | Type                                                                       |
| ------------------ | -------------------------------------------------------------------------- |
| `createCollection` | `(request: createCollectionRequest) => Promise< createCollectionResponse>` |

* **Parameters**:
  * `request.name`: The name associated with the collection.
  * `request.symbol`: The symbol representing the collection.
  * `request.bannerImage`: The banner image for collection.
  * `request.type`: Collection type (Artist || Standard).
  * `request.mintingFee`: The fee associated while minting NFT.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
  * `response.contractAddress` - The collection contract address.

### mintFromCollection

The `mintFromCollection` function is used to mint an NFT from standard collection.

| Method               | Type                                                                           |
| -------------------- | ------------------------------------------------------------------------------ |
| `mintFromCollection` | `(request: mintFromCollectionRequest) => Promise< mintFromCollectionResponse>` |

* **Parameters**:
  * `request.contractAddress`: The address of the collection contract.
  * `request.uri`: The URI associated with the NFT.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
  * `response.tokenId` - The token id of an NFT.

### mintIpFromArtistCollection

The `mintIpFromArtistCollection` function is used to mint an NFT from artist collection.

| Method                       | Type                                                                                           |
| ---------------------------- | ---------------------------------------------------------------------------------------------- |
| `mintIpFromArtistCollection` | `(request: mintIpFromArtistCollectionRequest) => Promise< mintIpFromArtistCollectionResponse>` |

* **Parameters**:
  * `request.contractAddress`: The address of the collection contract.
  * `request.mintingFee`: The amount to be paid for minting fee.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
  * `response.tokenId` - The token id of an NFT.
  * `response.ipId` - The Ip Id of an asset.

### mintFromKorProtocol

The `mintFromKorProtocol` function is used to mint an NFT from Kor protocol collection.

| Method                | Type                                                                             |
| --------------------- | -------------------------------------------------------------------------------- |
| `mintFromKorProtocol` | `(request: mintFromKorProtocolRequest) => Promise< mintFromKorProtocolResponse>` |

* **Parameters**:
  * `request.uri`: The URI associated with the NFT.
* **Returns**:
  * `response.txhash` - The transaction hash.
  * `response.tokenId` - The token id of an NFT.
  * `request.chainId`: The identifier for the blockchain network in the request.

### updateMetadata

The `updateMetadata` function is used to update metadata of already minted NFT.

| Method           | Type                                                                   |
| ---------------- | ---------------------------------------------------------------------- |
| `updateMetadata` | `(request: updateMetadataRequest) => Promise< updateMetadataResponse>` |

* **Parameters**:
  * `request.uri`: The new URI associated with the NFT.
  * `request.chainId`: The identifier for the blockchain network in the request.
* **Returns**:
  * `response.txhash` - The transaction hash.
