> For the complete documentation index, see [llms.txt](https://docs.paintswap.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paintswap.io/nft-marketplace-1/minting/bulk-mint.md).

# Bulk Mint

In order to mint in bulk, data is uploaded to a Paintswap server, processed and then uploaded with IPFS.

## Introduction

{% hint style="success" %}
Bulk mint is available for [Factory Contracts](/nft-marketplace-1/minting/contract-factory.md).
{% endhint %}

Bulk minting requires uploading data in a structured format. This data is then processed by Paintswap and uploaded with IPFS. This process can take some time, so be sure to:

* Validate all data is according to the format requirements in this page
* Have patience when uploading data
* Test first with a single item to have faster back-and-forth testing if something is not working

{% hint style="info" %}
This page is currently being improved. If you have a question or recommendation, come talk to us on [Discord](https://discord.com/invite/G4ZgtP52JK).
{% endhint %}

### Required Reading

To fully understand this page you should first read on the Supported NFTs, and Metadata within Paintswap.

{% content-ref url="/pages/QtQxITFpmVAlBy7dIz4x" %}
[Supported NFTs](/nft-marketplace-1/minting/supported-nfts.md)
{% endcontent-ref %}

{% content-ref url="/pages/zBxzscMG4nNpHDuxTaZp" %}
[Metadata](/nft-marketplace-1/minting/metadata.md)
{% endcontent-ref %}

## Data Format

{% hint style="info" %}
In addition to reading this section, make sure to have full knowledge on specific fields by checking out the Creating NFTs page
{% endhint %}

> any-name.zip
>
> > nfts.csv
> >
> > media
> >
> > > resource 01.jpg
> > >
> > > second\_video.mp4
> > >
> > > ...

A CSV file with the exact filename `nfts.csv` must be on the root folder of the zip to be uploaded. Also on the root of the zip a folder with name `media` , inside of which will go the media resources.

Each line in the CSV file must have the following structure:

`name,description,nft_type,media,high_res_media,external_uri,quantity,attributes`

Where:

* `nft_type` should be one of image/video/audio/3d/interactive . Read more in the [Supported NFTs](/nft-marketplace-1/minting/supported-nfts.md) page.
* `media` is the filename of a resource inside the media folder that is placed in the zip. This is equivalent to the **image** in the [Metadata](/nft-marketplace-1/minting/metadata.md) page.
* `high_res_media` is the filename of another resource inside the media folder that is placed in the zip. This is equivalent to the **animation\_url** in the [Metadata](/nft-marketplace-1/minting/metadata.md) page.
* `attributes` currently attributes are limited to key-value pairs, this is being worked on to support complex attributes, including rarity. Example, **including the quotes** if multiple attributes are needed:\
  `"type1=value1,type2=value2"`
* Other fields should be according to the [Metadata](/nft-marketplace-1/minting/metadata.md) page.\
  \
  An example .zip file contains the appropriate structure can be downloaded here:\
  <https://s3.amazonaws.com/bulk.paintswap.finance/paintswap_bulk_mint_test.zip>
