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

# Asset Client

## AssetClient

The `AssetClient` allows you to perform various operations related to asset metadata.

Using the `AssetClient` simplifies the process of managing and storing asset metadata for your projects.

### Methods

* uploadAsset
* uploadAssetFolder
* uploadMetadata
* uploadMetadataFolder
* generateISCC
* checkISCCSimilarity

### uploadAsset

Upload an asset to IPFS and return the CID.

| Method        | Type                                                            |
| ------------- | --------------------------------------------------------------- |
| `uploadAsset` | `(request: UploadAssetRequest) => Promise<UploadAssetResponse>` |

**Parameters**

* `request.data`: The data to be uploaded to IPFS.

**Returns**

* `response.uri`: The URI of the uploaded data.

### uploadAssetFolder

Upload an asset folder to IPFS and return the base CID.

| Method              | Type                                                                        |
| ------------------- | --------------------------------------------------------------------------- |
| `uploadAssetFolder` | `(request: UploadAssetFolderRequest) => Promise<UploadAssetFolderResponse>` |

**Parameters**

* `request.data`: The data to be uploaded to IPFS.

**Returns**

* `response.baseUri`: The Base URI of the uploaded data.

### uploadMetadata

Upload metadata to IPFS and return the CID.

| Method           | Type                                                                  |
| ---------------- | --------------------------------------------------------------------- |
| `uploadMetadata` | `(request: UploadMetadataRequest) => Promise<UploadMetadataResponse>` |

* **Parameters**:
  * `request.data` - The actual metadata content.
  * `request.name` - The name of the metadata.
  * `request.symbol` - The symbol of the metadata.
  * `request.description` - The description of the metadata.
  * `request.attributes` - An array of attributes, where each attribute is an object with `trait_type` and `value` properties.
* **Returns**:
  * `response.metadataURI` - The URI (e.g., IPFS URI) where the metadata is stored.

### uploadMetadataFolder

Upload an metadata folder to IPFS and return the base CID.

| Method                 | Type                                                                              |
| ---------------------- | --------------------------------------------------------------------------------- |
| `uploadMetadataFolder` | `(request: uploadMetadataFolderRequest) => Promise<uploadMetadataFolderResponse>` |

**Parameters**

* `request.data`: The data to be uploaded to IPFS.

**Returns**

* `response.baseUri`: The Base URI of the uploaded data.

### generateISCC

Generate the ISCC of the content.

| Method         | Type                                                              |
| -------------- | ----------------------------------------------------------------- |
| `generateISCC` | `(request: generateISCCRequest) => Promise<generateISCCResponse>` |

* **Parameters**:
  * `request.data` - The actual content.
* **Returns**:
  * `response.code` - The ISCC code of content.

### checkISCCSimilarity

Check Similarity between two ISCC Code

| Method                | Type                                                                            |
| --------------------- | ------------------------------------------------------------------------------- |
| `checkISCCSimilarity` | `(request: checkISCCSimilarityRequest) => Promise<checkISCCSimilarityResponse>` |

* **Parameters**:
  * `request.ISCC1` - First ISCC Code.
  * `request.ISCC2` - Second ISCC Code
* **Returns**:
  * `response.percentage` - Similarity percentage of two ISCC code.
