# Generate metadata

Not all the NFTs are randomly generated PFP, some of them are hand-drawn, or AI generated and doesn't require using art generator. If you already have art but don't have metadata, you can follow the steps here.&#x20;

If you are not sure what metadata is and how it works, read [our blog post to learn more about metadata](https://heymint.xyz/blog/how-to-create-nft-metadata/).&#x20;

To get started on generating metadata, go to Upload the layer page and select "**I already generated my art myself or using a different service**" option at the bottom.

Next, select **I have art, but not metadata** option.&#x20;

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FfKnxidhE5AKT8oTA97HS%2FScreen%20Shot%202023-01-31%20at%206.27.10%20PM.png?alt=media&#x26;token=1c130aa2-a600-4240-a6e0-2565429b2801" alt=""><figcaption></figcaption></figure>

## Upload your asset to IPFS

Assuming you haven't uploaded your art to anywhere yet. If so, follow the steps to create an account on NFT storage and upload the art to IPFS using NFT storage.&#x20;

Once you uploaded your art to NFT storage, provide two information:

* **CID:** Unique identifier to find where you saved the files.&#x20;
* **Media format:** Select file extension format for your asset (.png, .jpg, .gif etc.)

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FIFwaI2DBBmuv4fSW0WOP%2FScreen%20Shot%202023-01-31%20at%209.07.19%20PM.png?alt=media&#x26;token=0642e438-eb65-42dd-b170-1cd42409e250" alt=""><figcaption></figcaption></figure>

## Provide NFT storage key

Next, you will need to get NFT storage API key from NFT storage and provide the key to us. We will need the key so that we can upload the generated metadata for you so that metadata files will be saved in your account and you can have a full control over it.

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FTier47LQVAzbDv1ww66A%2FScreen%20Shot%202023-01-31%20at%209.05.32%20PM.png?alt=media&#x26;token=fc274386-04bd-4002-bd87-f98d7e78da5e" alt=""><figcaption></figcaption></figure>

## Fill out CSV to generate metadata

This is the part it takes a bit time to prepare - but rest assured, we can walk you through the process step by step.

Set up the excel sheet

In order to create metadata, you will need to fill in all the token information in an excel sheet and at the end of the process, you will export it to CSV and import that into Launchpad.&#x20;

You can find the excel sheet from [here](https://docs.google.com/spreadsheets/d/1vRFc-LKKWrngAAJkxbMak23iH3ET_pPQLrJOA-ahFf0/edit#gid=0), and as this is read-only, make a copy from File menu and rename the file however you like (please look at the 3rd sheet/tab for an example). &#x20;

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FGt0CDHi0hMHevDvDHSow%2FScreen%20Shot%202023-01-31%20at%209.57.17%20PM.png?alt=media&#x26;token=2496f91c-b53d-4bcf-b593-8b042a08a778" alt=""><figcaption></figcaption></figure>

Once you copied file, you will need to fill out the following information in the file:

* filename: Name of the file for each token (should be the exact filename including the extension name, e.g. 1.jpg, 2.jpg, 3.jpg)
* title: Name of the token
* description: Description for each token
* trait type and trait value: Each token's trait type and value (trait type goes to the header row of the column as it will be the same for all the tokens (for instance, all the tokens will have trait\_type, "background".) and each row has its own trait values.&#x20;

Let's use Curious Addys as an example - [in this IPFS link](https://bafybeic2hhrpb62upb3oii5dtem7bm72xfaaqsvwqcco2ib3ggyawz32we.ipfs.nftstorage.link/images), Curious Addys asset files are stored.

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FSNr8fWHI60RlA6aHjE5Z%2FScreen%20Shot%202023-01-31%20at%2010.06.25%20PM.png?alt=media&#x26;token=14ab0db1-b802-4389-b7b0-72395074a3f7" alt=""><figcaption><p>If you access to the link, you should be able to see this</p></figcaption></figure>

### Filename

We named each file for each token number, so 10.png will be used for token ID 10, which will be used for "filename" column in the spreadsheet. You should put the exact filename, including the extension name, so our converter can make the correct JSON files. Once you do so, our platform will be able to find where the assets are stored and add that information to the metadata.

### Title

This will be the name of each token - you could simple put the number of token (#1 etc.) or call it differently such as Addy 1, Addy 2 etc. The name of the token will show up right next to the image:

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FXPHnb8EJxUvuGU3mDRdB%2FMask%20group%20(21).png?alt=media&#x26;token=1f139883-00b0-450f-8ef6-b4c7e241ad88" alt=""><figcaption></figcaption></figure>

### Description

Description will be displayed right under the image in the OpenSea token page:

![](https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FOCuERqKA5L3DCfZvshlL%2FGroup%201%20\(16\).png?alt=media\&token=956fce9a-b0dd-460f-9274-963360301ea1)

You could have a different description for each token, or have the same, whichever you prefer.&#x20;

### Trait type & trait value

Trait type or trait value is the most complex and time-consuming part - but the good news is this is optional - so if you don't need tokens to have any traits, you can skip this part and just remove the columns from the spreadsheet.&#x20;

If you decide to include, you can list what trait types you want to include (Background, body, expression etc.) and list them horizontally on the header row, and fill in each trait value in each tokens' row like below:

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FdRIYuuS4qPY8O6E1TjDi%2FScreen%20Shot%202023-02-01%20at%2011.40.18%20AM.png?alt=media&#x26;token=2096a445-76f2-4bb4-b32e-1575b54b32c4" alt=""><figcaption></figcaption></figure>

Please make sure to add the correct name for trait type and correct value for trait value that correspond to your image, as it shows up on OpenSea like below alongside with the asset (so if the asset and trait values look different, holders will know).

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FOh5IwN1bXN3SV3jFa9kR%2FGroup%203%20(9).png?alt=media&#x26;token=b94460b5-b097-419b-b71e-592d67bc4884" alt=""><figcaption><p>Opensea view of the traits in your CSV</p></figcaption></figure>

Once you are done filling out all the information, it should look like this:

You can also see the example sheet from [here.](https://docs.google.com/spreadsheets/d/1MSUWu_TFg6SpKS1vYV4pP65-OEndCH5NOCPV8BaFTsA/edit?usp=sharing) (Please look at the 3rd sheet/tab for an example)

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FXZ5LM6rYg131LJX0NNJ4%2Ffn.JPG?alt=media&#x26;token=29d75594-8fc2-4c19-b2ff-bf8cfb0cb18a" alt=""><figcaption></figcaption></figure>

## Export your sheet to CSV

Once you check everything and feel it's ready to go, you can export the sheet to CSV - you can do so from File > Download > Comma Separated Values (.csv)

<img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FRD7YDIXJvJ8YLaQzHYnI%2FScreen%20Shot%202023-02-01%20at%2011.45.37%20AM.png?alt=media&#x26;token=75a2fc59-aba5-4d74-a2f8-db43917b532f" alt="" data-size="original">

{% hint style="warning" %}
Make sure you are exporting to **CSV**, not excel (.xlsx) or TSV (.tsv)
{% endhint %}

## Import your CSV to launchpad

Click the box, and select the CSV file you just downloaded and import the file:

![](https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2Fa07VXPEhtLlXZI08Z7EX%2FScreen%20Shot%202023-02-01%20at%2011.48.58%20AM.png?alt=media\&token=9080dde5-bf18-4a0e-949f-16816a5208cb)

Once you import, you can see the preview of the first token:

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2FFuHy6XbFfBLuGLlLsIuD%2FScreen%20Shot%202023-02-01%20at%2011.50.22%20AM.png?alt=media&#x26;token=8a06b5bb-1454-486c-b2c0-0aa790d89478" alt=""><figcaption></figcaption></figure>

If you find any errors or mistakes you want to change, go back to CSV, make edits, export and import again. If it looks good, you can go ahead and hit "**Generate metadata**".

If the import succeeds, you will see the success message:

<figure><img src="https://3436148827-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgUBEZKVtA2DMYGTVBbl6%2Fuploads%2Fhra30GvctmkAZxvxVCxo%2FScreen%20Shot%202023-02-01%20at%2011.58.17%20AM.png?alt=media&#x26;token=06c7240d-e3d0-4e0a-afba-f8744bc5f150" alt=""><figcaption></figcaption></figure>

You can click NFT.Storage to see if files are stored correctly.&#x20;

If you want to regenerate, you can do so anytime by just simply hitting "**Regenerate**".

And you are all set! When you deploy your contract, we will set the url for your IPFS link to be the token uri :)


---

# 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.launchpad.heymint.xyz/creators/art-and-metadata/generate-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.
