> 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/architecture/modules/asset-module.md).

# Asset Module

Asset Module consists of the components which are used to-

* Upload the Asset to IPFS
* Generate the ISCC Codes for the Assets
* Create Metadata for IP or Collection
* Upload the Metadata to IPFS
* ISCC codes comparison

It uses the International Standard Content Code library to generate the ISCC code for the Asset and uses Pinata to upload the data to the IPFS.

![Asset Module](/files/0eqm8Cxcy0iDxvhETjKD)

## Upload Asset

As user uploads the Asset, sdk generates the ISCC code for it and uploads the Asset to the IPFS, returns the URI of the Asset.

![](/files/IBrw4Q8niqqdo1jsPdld)

## Upload Collection

When an Artist uploads the collection folder, the sdk generates ISCC for each Asset present in the collection and uploads the Assets to the IPFS, returns the URIs of the Assets.

![](/files/IIAu50LI6GuMWZm4pako)

## Upload Metadata

Metadata is generated using the ISCC code and Asset URI returned while uploading the Asset and other Metadata Fields, then the Metadata is uploaded to IPFS and user gets the Metadata URI in return.

![](/files/V3RoqNlGdmVtITmuscfD)
