# Bulk Upload Files and Metadata

Upload up to 1000 files directly from the user interface using drag and drop, or upload larger batches in bulk using SFTP. However, both options require proper file naming and uploading the files in the correct order.\
\
[Klick here if you want to learn how to use the User Interface](https://docs.nmkr.io/nmkr-studio/token/upload/bulk-upload-files-and-metadata/bulk-upload-via-drag-and-drop) or [here if you want to learn how to set up the SFTP Upload.](https://docs.nmkr.io/nmkr-studio/token/upload/bulk-upload-files-and-metadata/bulk-upload-via-sftp)

<figure><img src="/files/Qdkf3sGuEPRb3vnwdmzK" alt=""><figcaption></figcaption></figure>

### Upload in the correct order

1. Main file first (image or animated gif)
2. Subfiles next
3. Metadata (renamed JSON or Placeholder.csv) last. Maintain this order even if you modify the project, especially with the placeholder.csv method.

### Naming of the files

To make sure everything works correctly, you need to name your files in a certain way. The names of the files will determine the [asset\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name) and [display\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template?q=display_name) for the token. It's important to name subfiles and metadata properly too.<br>

For instance, uploading a file named "Token #0001.jpeg" will result in the following naming:

* The asset\_name/token name of the file will be "token0001".
* The display\_name (the name of the NFT) will be "Token #0001".

### Main files

After a correct naming of the files you can start to upload the files

{% hint style="info" %}
The **main file must be an image or animated gif,** because this file will be taken as thumbnail in wallets, explorers and on secondary merkats.\
It may make sense to upload a downscaled version here and the full scale version as [subfile](https://docs.nmkr.io/nmkr-studio/token/upload/bulk-upload-via-sftp/bulk-upload-files-and-metadata#bulk-upload-subfiles) for a faster loading time on above mentioned platforms.
{% endhint %}

{% hint style="warning" %}
**We recommend that the numbering of your tokens rarities are not related to the token numbers.**\
If this needs to be the case, we recommend that the [asset\_*name* / token name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name) of an asset does not correlate in any way with the [display\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#display_name) and is randomly generated.\
Please use the [placeholder.csv method](https://docs.nmkr.io/nmkr-studio/token/upload/bulk-upload-via-sftp/bulk-upload-files-and-metadata#bulk-upload-metadata-with-placeholder.csv) to override the display names of your tokens.\
\
The reason for that is simple; if you are going to use [MultiSig Payment](https://docs.nmkr.io/nmkr-studio/set-up-sales/nmkr-pay/multisig-payment) in your project, the buyer could see the [asset\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#asset_name) (not the [display\_name](https://docs.nmkr.io/nmkr-studio/project/metadata-template#display_name)) in the transaction when he is signing the payment transaction. Therefore, a buyer could decide to cancel the transaction if he sees an "not rare/common number" and start over again.
{% endhint %}

### [Subfiles](https://docs.nmkr.io/nmkr-studio/token/upload#subfiles)

To add a subfile to an existing File/Token with the name "Token #0001", you need to upload a file named "Token #0001.subfile.1.png". This file will be added to the NFT as the first subfile.

If you want to add more subfiles, you can name them "Token #0001.subfile.2.png" for the second subfile, and "Token #0001.subfile.3.png" for the third subfile, and so on.

### Metadata JSON

{% hint style="info" %}
The uploaded metadata must be in the correct [Metadata Structure](https://docs.nmkr.io/nmkr-studio/token/metadata#metadata-structure).\
\
It is allowed to contain placeholders like \<policyID>, \<asset\_name>, \<display\_name>,\<ipfs\_link>,\<mime\_type> as these data is already given with the upload of the token and creation of the project.\
\
If you want, you could also [add ipfs hashs of externally uplaoded files](https://docs.nmkr.io/nmkr-studio/project/metadata-template#add-files-directly-to-the-metadata-template).
{% endhint %}

It is important that **.json files are renamed to .metadata files**. Please make sure in the detail info of your file that the suffix is not ".metadata.json."\
\
If you upload a file named "**Token #0001.metadata**", the previous uploaded File/Token with the name "Token #0001" will take this file as metadata (in the[ metadata override](https://docs.nmkr.io/nmkr-studio/token/edit#metadata-override-tab)).

### Metadata with placeholder.csv

The easiest method to upload metadata in bulk is the [placeholder.csv method](https://docs.nmkr.io/nmkr-studio/token/metadata/add-token-specific-metadata#upload-metadata-in-a-placeholder.csv-sheet). It allows you to use a spreadsheet that contains all metadata of your tokens to add them to your tokens in your project.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nmkr.io/nmkr-studio/token/upload/bulk-upload-files-and-metadata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
