> For the complete documentation index, see [llms.txt](https://mogulproductions.gitbook.io/mogul-productions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mogulproductions.gitbook.io/mogul-productions/using-the-mogul-creator-portal/step-by-step-example.md).

# 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"
  },
}
```
