# Step By Step Example

### Creating a collection for marketplace (network MAINNET):

1. Go to the **Collections tab**, click **New**.
2. Make sure your wallet is connected to the desired network (**MAINNET** in this example).
3. Choose **ERC1155**, and fill in the necessary details for this collection form.
   * **Name**, **description** and **logo image** are **mandatory fields**. A **banner image** is recommended as well.
4. **Save changes**, a metamask prompt will show and you **must confirm** to deploy a contract for this new **Collection**.
5. Wait for everything to process, it will result in the newly created **Collection**. **Note down** the **Contract Address** as this is required in later steps.
6. Go to the **Marketplace Contracts tab**, and click the **New subtab**.

   **IMPORTANT: PLEASE REQUEST MOGUL ADMIN FOR STEPS 7 - 8.**
7. Paste in the **Collection Contract Address** from above and make sure the **Network** is correct (**MAINNET** in this example).
8. Click **add**, then **confirm** the metamask prompt, and let it process. Afterwards you should be brought back to the **Marketplace Contracts** list page.
9. **Congratulations, your Collection is now created and listed on the marketplace.**

### Creating an ERC1155 NFT start-to-end (batch draft, network MAINNET):

1. Make sure you have the **Contract Address** of an existing **Collection** created, if not follow steps from [Creating a collection for marketplace (network MAINNET)](https://github.com/mogulproductions/mogul-frontend/blob/documentation-technical/nft-pipeline/documentation/nfts/NFTs-Business.md#creating-a-collection-for-marketplace-network-mainnet) above first before proceeding.
2. Go to **NFTs tab**, click **Batch NFT Draft**.
3. Upload the **.csv** file with all the **NFTs** you want defined properly with the **Contract Address** from earlier and correct **Network** defined (**MAINNET** in this example).
   * **Proper .csv formatting** can be found below [Sample .csv layout for NFT Batch Draft](https://github.com/mogulproductions/mogul-frontend/blob/documentation-technical/nft-pipeline/documentation/nfts/NFTs-Business.md#sample-csv-layout-for-nft-batch-draft) or **on the Batch NFT Draft page** itself.
   * If you wish to link a **Project** to this **NFT**, the **Project** and its **projectID must already exist**, if not please create one in the **Projects tab** first. (**NOTE:** an error will show for the **rows** that the **projectId** does not exist).
4. Once the **.csv** file and assets have been selected, the **table** will show **rows** that have **detected errors**; correct these errors by either selecting a **new .csv** file or select missing **assets**.
   * **Assets** can be selected incrementally. If you wish to remove an asset, simply click the ***files text*** under the button and click the “**x**” beside the file you wish to not upload.
   * As **assets** are selected, they will be detected and removed from the **table** errors.
5. **When no more errors** are detected, the **table** will become **empty** and the **Batch Create button** will be enabled, click it to start the upload process.
6. A modal with the upload progress will appear, if any **NFTs** fails to upload, it will also be displayed in this modal with its corresponding **.csv row number**.
   * **Failed NFTs** will have to be **readded** to a **new .csv file** and restart the process from **Step 7** above if you wish for them to be uploaded. **Please double check to ensure that these failed NFTs data are correct before trying again.**
7. Once the **NFTs** have been drafted, go to the **Mint subtab** under **NFTs**. Here you can mint the drafted **NFTs** you just uploaded.
8. Select the **NFTs** you want to mint. (**Note**: you can only mint **multiple** **NFTs** from the **same Contract Address**. You can select one of them and click the **Select all from the same contract button** to save time).
9. Next go to the **table** below the **first table** and it should show you the selected **NFTs**. If you are on the wrong **Network** it will prompt you to switch to the correct **Network** (switch to **MAINNET** in this example). (**Note**: this will result in page refresh, you may have to reselect the **NFTs**).
10. In the **second table** fill in the **Recipient Address** you wish to mint all the **NFTs** to and set the **Desired Amount** to mint for each **NFT** (**NOTE**: **ERC1155** must mint **all to the same address**, but each **NFT** can have **varying amounts**).
11. Once **all required fields are filled**, click the **mint selected button**. **Confirm** the metamask prompt to mint.
12. A modal will appear, once complete it will have the transaction url you can click to open up in the block explorer. Any errors will also be shown.
13. **Congratulations, your ERC1155 NFTs have now been minted.**

#### Sample .csv layout for NFT Batch Draft

For info on how to use **markdown**, click [here](https://commonmark.org/help/). For info on **metadata**, **attributes**, **properties**, **fields**, go to [Sample .csv Metadata, Properties, Attributes, or Fields](https://github.com/mogulproductions/mogul-frontend/blob/documentation-technical/nft-pipeline/documentation/nfts/NFTs-Business.md#sample-csv-metadata-properties-attributes-or-fields).

| id | contractAddress                            | title  | description  | totalSupply | unlockableContent               | network | image      | animation      | isFeatured | isTrending | projectId | metadata | attributes | properties                                                                                                               | fields |
| -- | ------------------------------------------ | ------ | ------------ | ----------- | ------------------------------- | ------- | ---------- | -------------- | ---------- | ---------- | --------- | -------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ | ------ |
| 1  | 0x08276ecbef63121dea6d524d0fcdc2afb99fbe65 | Title1 | Description1 | 10          | ### some unlockable in markdown | MAINNET | image1.png | animation1.gif | TRUE       | FALSE      | Ot43Jhz   |          |            | {"title": {"type": "string","description": "Title1" },"author": {"type": "string","description": "Mogul Productions"} }, |        |
| 2  | 0x08276ecbef63121dea6d524d0fcdc2afb99fbe65 | Title2 | Description2 | 5           |                                 | MAINNET | image2.png |                | FALSE      | TRUE       |           |          |            |                                                                                                                          |        |

**Column Definitions:** *NOTE: tokenId (ie. Id and contractAddress combinations) must be unique. (ie. cannot have 2 id: 1 linked with contract address '0x123...789').*

id : The id of nft. Must be an integer greater than 0. Must be unique. (**required**)

contractAddress : The contract addressed used to mint the nft. **Must be a valid contract address**. (**required**)

title : The name of the nft in plain text. (**required**)

description : The description of the nft in plain text. (**required**)

totalSupply : The total supply of that tokenId. Must be an integer greater than 0. (**required**)

unlockableContent : Text shown under unlockable content of a nft. Content here overrides collection unlockable content. (optional)

network : The network the nft is on. Must be one of **MAINNET**, **RINKEBY**, **BSC**, **BSCTEST**. (**required**)

image : Name of the associated Image File with file extension included. File type must be one of **jpg**, **jpeg**, **png**, **gif**. (**required**)

animation : Name of the associated animation file with file extension included. File type must be **mp4** or **gif**. (optional)

isFeatured : Marker for if the nft will be displayed under the featured section. Must be either **TRUE** or **FALSE**. (**required**)

isTrending : Marker for if the nft will be displayed under the trending section. Must be either **TRUE** or **FALSE**. (**required**)

projectId : Unique ID of the associated project you want linked to this NFT. **Must already exist in the database**. (optional)

metadata : Metadata of the nft. Must be an object in json text, please check sample csv or some existing nft for format. (optional)

attributes : Attributes of the nft. Must be a list of object in json text, please check sample csv or some existing nft for format. (optional)

properties : Properties of the nft. Must be an object in json text, please check sample csv or some existing nft for format. (optional)

fields : Extra fields for the metadata of the nft. Must be an object in json text, please check sample csv or some existing nft for format. (optional)

#### Sample .csv Metadata, Properties, Attributes, or Fields

Sample valid value for the **Properties** field in the .csv. **Metadata**, **Attributes**, or **Fields** also follow similar format. Learn more at [OpenSea Metadata Docs](https://docs.opensea.io/docs/metadata-standards#metadata-structure).

```
{
  "title": {
  "type": "string",
  "description": "Title1"
  },
  "author": {
  "type": "string",
  "description": "Mogul Productions"
  },
}
```


---

# 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://mogulproductions.gitbook.io/mogul-productions/using-the-mogul-creator-portal/step-by-step-example.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.
