# GeneratOrd

Build highly efficient ordinal collections using GeneratOrd

{% hint style="info" %}
You can access GeneratOrd here: [generatord.io](https://www.generatord.io)
{% endhint %}

{% hint style="info" %}
If you just want to know how to create a collection with GeneratOrd, checkout the [Creating Your Collection](/generative-pfp-collection) section. It contains everything you need to know
{% endhint %}

GeneratOrd (pronounced 'generate-ord') is both a website and a recursive inscription standard created by the Fomojis Team, first used to create our Fomojis 2.0 collection. Our aim was to make this standard as general, reusable and accessible as possible, so it could be used by anyone to create a wide variety of super efficient collections.

Standard ordinal inscriptions are highly inefficient, so creating a large collection of images can be very expensive to inscribe. GeneratOrd uses recursive inscriptions to reduce the file sizes by 90% or more, which directly reduces the inscription fees. This makes it much more feasible to create large collections on Bitcoin.

Recursive inscriptions require complex JavaScript code, making it prohibitive for people without a technical background. GeneratOrd aims to fix this, making recursive collections accessible to everyone. The GeneratOrd website provides an automated way to generate all the files required to make a recursive collection that follows the GeneratOrd standard.&#x20;

{% hint style="warning" %}
GeneratOrd is currently in alpha, so the feature set is limited. We are actively developing it, so new features will be added regularly. Checkout the [Planned Features](/planned-features) section to find out what might be added in the future
{% endhint %}

### Features

* Reduces inscription fees by 90% or more
* Traits combined into a single image, that can be saved by right clicking
* Works with any image size (even rectangular images)
* Support for both Non-Pixelated and Pixelated images
* Ditto collections allow you do make a large number of identical copies of an image
* Supports on chain metadata
* Banner creator allows you to create fully on chain banners for ord.io
* Many more features coming soon...


# What is Recursion?

To understand recursion, you must first understand recursion — Stephen Hawking

Recursion is a technique used in ordinal inscriptions where one inscription can reference another inscription. GeneratOrd uses a series of HTML and JavaScript inscriptions that utilise recursion to generate a collection on chain.&#x20;

For this to work, all the traits used in the collection are inscribed as regular images. Then, the collection is inscribed as HTML files. These HTML files run some JavaScript code that loads the trait images, combines them into a single image by layering them on top of each other, and displays this image.&#x20;

GeneratOrd uses some clever techniques to make these HTML files as small as possible, making it cheaper to inscribe them. Because the HTML files are so small, it is very cheap to inscribe them, making large collections much cheaper


# Why should I use GeneratOrd?

The alternative to GeneratOrd is to inscribe each item in your collection as a separate image. Because images are quite large compared to HTML files, it is much more expensive. Because of the initial cost of inscribing the traits, the larger the collection, the larger the potential savings you will get from using GeneratOrd.

Let's use the Fomojis 2.0 collection as an example to see the power of recursion.

#### Without GeneratOrd

Fomojis 2.0 has 2009 images, and each is roughly 46KB. This results in a total size of the whole collection of 92.4MB. At a fee rate of 10 sats/vB, the total cost of inscribing all 2009 images would be around **2.31BTC**!&#x20;

For most collections, this would be prohibitively expensive.

#### With GeneratOrd

Fomojis 2.0 had 170 different traits, each one being roughly 19KB. Thus, the total size of the traits was 3.23MB. The HTML files are 117 bytes each, and there are 2009 of them, resulting in an extra 235KB to inscribe. Finally, the metadata was 26KB, resulting in the total size of the collection being 3.5MB. At a fee rate of 10sats/vB, this would only cost **0.09BTC!**

**That is a saving of over 96%**


# How does GeneratOrd work?

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FfzJhS83K0aa0T315DVps%2FGeneratOrd%20Alpha.png?alt=media&amp;token=f15560c2-34bc-40a1-9384-0cb330809e08" alt=""><figcaption><p>Flow diagram of the various inscriptions used by GeneratOrd</p></figcaption></figure>

The basic principal behind GeneratOrd is that instead of inscribing each image in your collection, you inscribe each trait, and then each image is constructed from these traits using Java Script code that is inscribed on chain. In order to make this work several inscriptions are required.&#x20;

GeneratOrd is designed so that the Processor, Default Renderer and Fallback Renderer are identical for all collections. This means you don't need to inscribe these files, as they are already pre-inscribed.

#### Metadata

The metadata contains all the inscription ID's for all the traits in your collection, as well as which traits are in each image. This data is compressed by default to reduce inscription fees, however if you would rather it be readable, you can choose for it to not be compressed.

#### Collection

The actual collection consists of a number of HTML files. There could be thousands of these depending on the size of the collection. These are incredibly simple files, and all they do is reference the Config file.&#x20;

Each file also has a Token ID in it, which is simply a number indicating which item it is in the collection, and is used in conjunction with the metadata do determine which traits should be displayed.

#### Config

The Config is a JavaScript file that contains certain configuration details about your collection. This includes information such as the inscription ID of your metadata, the pixel size of your images, and if they are pixelated or not. This information is then given to the Processor.

#### Processor

The processor is the 'heart' of GeneratOrd. It loads your metadata and decompresses it. It then retrieves the Token ID, stored in the HTML file, and uses that to extract inscription ID's for the traits of this image from the metadata. Finally the trait inscription ID's are given to the Default Renderer.

#### Default Renderer

The Default Renderer uses the inscription ID's provided by the processor to load all the traits for the given image. It then combines all of these into a single image and displays it. Importantly, it actually combines the traits into a single image, rather than simply layering the traits on top of each other. This means that you can right click save the image as you would with a normal image.

#### Fallback Renderer

At this stage, this is not used in by the GeneratOrd website, however it will be used in the future for delayed reveal collections and custom renderers (see [Planned Features](/planned-features)).


# Pricing

There are many factors that impact the amount you pay on GeneratOrd. Our [Price Calculator](https://www.generatord.io/price-calculator/generative) can be used to quickly estimate how much you will need to pay. See [below](#price-calculator) for more details about how to use the Price Calculator.

The amount you pay in GeneratOrd is broadly split into 3 parts:

* **Service Fee**: The fee given to GeneratOrd for your use of the platform. See [Service Fee](#service-fee) for details on how this is calculated.
* **Network Fee**: The transaction fees required to create your Bitcoin transactions and inscriptions. These fees go to Bitcoin miners, and depend on the size of the files you are inscribing, and the current Bitcoin fee rates.
* **Padding**: Padding is a small amount of Bitcoin that is 'attached' to each inscription. The more inscriptions you create, the more you pay in padding.

## Service Fee

The service fee you pay is based on the collection size of your collection as well as if you are inscribing or not. It is calculated as follows:

* 250 sats per item
* An additional 500 sats per inscription. This includes every inscription (traits, metadata, config and collection)
* An additional 200 sats per item if including [Onchain Metadata](/generative-pfp-collection/settings#include-onchain-metadata). The fee for Onchain Metadata is only charged if you inscribed.

Where 100 million sats = 1 Bitcoin.

{% hint style="info" %}
For example, if you create a collection of size 1000 with 150 traits, it will cost 250 × 1000 = 250,000 sats.

If you choose to inscribe with GeneratOrd, you will have 150 inscriptions for the traits, 1000 inscriptions for the collection, plus 2 more for the mandatory metadata and config inscriptions. Thats a total of 1152 inscriptions, costing 500 × 1152 = 576,000 sats.

If you choose to include Onchain Metadata, this will cost an additional 200 × 1000 = 200,000 sats.
{% endhint %}

## Price Calculator

You can access the Price Calculator here: <https://www.generatord.io/price-calculator>

{% hint style="info" %}
Important: For the traits, you must enter the total file size of ALL traits. This is NOT the size of a single trait. To find this, put all your traits in a single folder, then Right Click and select Get Info or Properties and find the Size property. You must enter the size in KB, so make sure to convert MB to KB if needed (1MB = 1000KB)
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FJ4z17T0HpFwiITSyvyzV%2Fprice%20calculator.png?alt=media&amp;token=4f288d0e-7b0e-4a62-9304-86f2524a54f9" alt=""><figcaption><p>Price Calculator</p></figcaption></figure>

{% hint style="info" %}
For a detailed breakdown of the costs, make sure to click on the **Detailed Costs** button.
{% endhint %}

You need to consider the following as you fill out the Price Calculator

* Are you inscribing the collection through GeneratOrd, or are you going to inscribe yourself or a third party? If you are **not** inscribing through GeneratOrd, then uncheck the **Inscribe Collection with GeneratOrd** checkbox. You may choose to do this if you are launching with an 'inscribe on demand' launchpad such as Ordzaar or Gamma, or if you are using more advanced inscribing techniques not supported by GeneratOrd, such as parent child, or rare/exotic sats. See [Payment and Inscribing](/generative-pfp-collection/payment-and-inscribing) for more details.
* Are your traits already inscribed? If they are, then uncheck the **Inscribe Traits with GeneratOrd** checkbox. Otherwise, be sure to fill in the **Number of Traits** and **Total File Size**. The total file size is the file size of all of your trait images.
* Make sure to check **Include Onchain Metadata** if you plan to use Onchain Metadata. For details about what this is, see [Onchain Metadata](/generative-pfp-collection/settings#include-onchain-metadata). This is only applicable if you are inscribing with GeneratOrd. Otherwise, you cannot include Onchain Metadata.
* Think about what fee rate you will aim to inscribe at. If you think you will be inscribing at a different fee rate from the current fee rate, make sure to edit the fee rate to get an accurate cost estimate. See [Fee Rate](/inscribing#fee-rate) for more details about selecting your fee rate.


# Generative PFP Collection

A Generative PFP Collection is a collection with a base set of interchangeable traits, which are combined to make a large number of unique images.

{% hint style="info" %}
If you are unsure if GeneratOrd is right for your collection, you can trial it out on a small test collection. Collections with 20 or fewer items are free to download, allowing you to trial GeneratOrd, and test out the recursion
{% endhint %}

A Generative collection is a collection that consists of a set of traits that can be layered on top of each other to create many different images. The traits are grouped into 'Trait Types' (e.g. Background, Head, Hair, etc.), with each trait type having one or more trait in it. Each trait is simply an image, and each item in the collection is made by layering together one trait from each trait type.

The process of creating your collection broadly consists of the following steps, each of which is explained in detail in it's own page:

* [Creating a Collection](#creating-a-collection)
* [Preparing your traits](/generative-pfp-collection/preparing-your-traits)
* [Configuring your traits](/generative-pfp-collection/configuring-your-traits)
* [Generating your collection](/generative-pfp-collection/generating-your-collection)
* [Exploring and verifying your collection](/generative-pfp-collection/exploring-your-collection)
* [Inscribing your traits](/generative-pfp-collection/inscribing-your-traits)
* [Payment and/or inscription](/generative-pfp-collection/payment-and-inscribing)

## Creating a Collection

To create a Generative collection, navigate to your [profile page](https://generatord.io/profile) (you must have a GeneratOrd account to do access this, which you can create by simply connecting your wallet). On your profile page click **Create Collection**, and select **Generative PFP Collection**.

<div data-full-width="false"><figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FpkDH6HPnuqSZkzlX9hR5%2Fcreate%20collection.png?alt=media&amp;token=2a88d175-03ad-4c38-8eaf-6b5cc9952d97" alt=""><figcaption><p>Click <strong>Create Collection</strong></p></figcaption></figure></div>

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FxiM0UA94yQbart9Pyj54%2Fcreate%20generative%20collection.png?alt=media&amp;token=2f64b665-b7b8-4784-8bb5-0c48966a6198" alt="" width="563"><figcaption><p>Select <strong>Generative PFP Collection</strong> to create a Generative collection</p></figcaption></figure>

When you create your collection, you will be able to set its name by clicking on the name at the top of the page, or by clicking on the Pencil icon.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FnhO8fLncj7jzpM18N3DS%2Frename%20collection.png?alt=media&amp;token=256f35af-688f-4ac9-8061-a4f18b412958" alt=""><figcaption><p>Click on the collection name, or the Pencil icon to rename your collection</p></figcaption></figure>

After creating your collection you will see a page with four Tabs:

* **Traits**: This is where you configure all the traits for your collection, including&#x20;
  * Uploading images
  * Setting names of traits and trait types
  * Setting the layer ordering of the trait types
  * Setting the rarity of each trait
* **Collection**: This is where you will create and view the collection out of the traits you have configured. You can use GeneratOrd's automatic generation tools to create the collection automatically, or you can create your own custom collection and upload it.
* **Settings**: This is where you can set several miscellaneous settings for your collection. Here you can:
  * Share the collection with others
  * Add custom onchain metadata
  * Set the images to be Pixel Art
* **Inscribe**: This is where you pay for your collection and inscribe it. There are several different ways to do this depending on your requirements, and how you plan to launch your collection, so make sure to have a look at the [Inscribing](/inscribing) docs to better understand the options.


# Preparing your Traits

In this section, we will describe how to prepare your traits to be uploaded to GeneratOrd

## Preparing and Uploading your Traits

The traits are the individual images that make up the layers of the final images in your collection. The traits are separated into groups, called 'trait types'. Typically, each image in your collection is made up of one trait from each trait type (however, this doesn't have to be the case).&#x20;

For example, your traits may be split into the following types: 'Background', 'Clothing', 'Head' and 'Expression', etc.

{% hint style="info" %}
All traits must be one of the following file formats: WEBP, JPEG, PNG, APNG, AVIF, GIF and SVG.

However, we recommend using WEBP or SVG, as these typically result in the smallest file sizes, resulting in lower inscription costs.

Animated images, such as GIF's or APNG's will not animate properly, so we do not recommend using them.&#x20;

However, animated images **can** be used for 1/1's (items with only one trait) and they will animate properly.
{% endhint %}

Before uploading your traits, you should sort them into folders based on trait type. Below is an example of how to organise the traits. The names of the folders (Background, Clothing, Expression and Head) are the names of the trait types, while the names of the images are the names of the traits (Bats, Charcoal, Doodle Dark, etc.). The names of the folders and files are important, since GeneratOrd uses these to name your trait types and traits, which will also then appear on market places.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FhXcNxtmU79qx36b0Ttuo%2Ffolder%20structure.png?alt=media&amp;token=d44cc3fd-9dbf-419d-a145-b788a98e3d59" alt="" width="349"><figcaption><p>Example of how you should organise your traits before uploading to GeneratOrd</p></figcaption></figure>

To upload your traits to GeneratOrd, navigate to the Traits Tab, and drag and drop the folder containing all your traits into the labeled section. You can also click the **Add Traits > Upload Folder** button as shown below. This will allow you to select a folder from your file system.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FxjcKsjad9vvUkTfCPdBr%2Fupload%20folder.png?alt=media&amp;token=66b69583-d937-47c1-a339-586e31d100d3" alt=""><figcaption><p>Upload your traits by dragging and dropping them, or clicking Add Traits > Upload Folder to select the folder from the file system</p></figcaption></figure>

GeneratOrd will automatically group your traits into trait types, and will name the trait types and traits based on your folder/file names. Below is the result of uploading the folder structure shown above.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FrLmjcJEtHmVGCWKXrvyP%2Ftraits%20example.png?alt=media&amp;token=0d4e654d-6ef3-47c4-8de1-af7745a95b75" alt=""><figcaption><p>Screenshot showing how the traits are organised into trait types in GeneratOrd</p></figcaption></figure>

## Other ways to add your Traits

### Uploading Images

You can add a new trait type by clicking **Add Trait Type**. This will add an empty trait type with a default name of **Untitled Trait Type**, so you will need to rename it which can be done by clicking on the name and typing in a new name.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FFpJC3LTOkksIl8V5xShG%2Fadd%20trait%20type.png?alt=media&amp;token=9cce279d-22e1-408e-b5ae-91d9bc457882" alt=""><figcaption><p>Click <strong>Add Trait Type</strong> to add a new, empty trait type</p></figcaption></figure>

Traits can then be added to the trait type by dragging and dropping images onto the trait type, or clicking the **Add > Upload Images** button located to the right of the trait type you want to add traits to.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FIOwOdh5VVmoVyIvenWfP%2Fadd%20images%20to%20trait%20type.png?alt=media&amp;token=f5189617-408e-45c0-8e11-2762f325dcee" alt=""><figcaption><p>Click <strong>Add > Upload Images</strong> to upload images to a given trait type. You can also Drag and drop images anywhere in the trait type. </p></figcaption></figure>

### Adding Preinscribed Traits

#### Add Inscription ID's Manually

To add inscription ID's manually, click the **Add > Add Inscription ID's** button located to the right of the trait type you want to add traits to. In the example below, we are adding traits to the **Background** trait type.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FQ1MNOpWqwhU2M3fjkekn%2Fadd%20inscription%20ids%20to%20trait%20type.png?alt=media&amp;token=4f594a3e-67c6-41e4-9bf5-ee79a20a48ff" alt=""><figcaption><p>Add Inscription ID's by clicking <strong>Add > Add Inscription ID's</strong> on the header of the trait type you want to add traits to</p></figcaption></figure>

This will open a dialog window as shown below. Enter the name and Inscription ID for each of the traits you're adding. You can add as many or as few traits as you wish. To add extra rows, click the **Add New** button, allowing you to enter in more traits. Alternatively, you can click the **Delete** buttons on the right to remove a trait. When you're done, click the **Add** button to add them to the trait type.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FrChxS4xZjuF2JK4qi9qC%2Fadd%20inscription%20ids%20modal.png?alt=media&amp;token=0b4bc4cf-4747-4a18-96e5-95bf69cfacdb" alt="" width="512"><figcaption><p>Add Inscription ID's dialog, allowing you to add the inscription ID's of your traits</p></figcaption></figure>

#### Upload ID's in a JSON File

Adding inscription ID's one by one through the UI can be tedious. To make this easier, we also allow you to upload all your trait ID's at once, in a JSON file. This file has the following format:

```json
{
  "<trait_type>": {
    "<trait_name>": "<inscription_id>",
    "<trait_name>": "<inscription_id>",
    ...
  },
  "<trait_type>": {
    "<trait_name>": "<inscription_id>",
    "<trait_name>": "<inscription_id>",
    ...
  },
  ...
}
```

{% hint style="info" %}
Here is a completed example of the [traits JSON file](https://76m5dlfsiafsjqyy.public.blob.vercel-storage.com/docs-files/traits.json) (Note: the ID's in this example are not real).
{% endhint %}

To upload this file, click **Add Traits > Upload Inscription ID's** in the top right.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FzkEzCdNA9Ww37hBg32H1%2Fupload%20inscription%20ids%20json.png?alt=media&amp;token=4547a409-7960-4c66-a035-a4931a7d7596" alt=""><figcaption><p>Click the <strong>Add Traits > Upload Inscription ID's</strong> button in the top right to upload a JSON file containing the inscription ID's of your traits</p></figcaption></figure>

## Editing your Traits

### Renaming and Deleting Trait Types

Trait types can be renamed by clicking on the name of the trait type, or by clicking the **More Actions > Rename** button. Under the **More Actions** menu, you can also delete the trait type. Be careful though, deleting a trait type will also delete all the traits within that group. The **More Actions** menu can be found to the right of the trait type, the button with the 3 dots (**⋮**) as highlighted below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FnbXFFDlNgRAUllqktvDJ%2Fmore%20actions%20trait%20type.png?alt=media&amp;token=3fa8d586-a70a-49f2-b769-39a206409cf0" alt=""><figcaption><p>The <strong>More Actions</strong> menu on each trait type allows you to rename or delete the trait type</p></figcaption></figure>

### Renaming and Deleting Traits

Similar to the above, each trait has a **More Actions** menu indicated by the button with 3 dots (**⋮**) next to the trait name as highlighted below. Within this menu, you can rename and delete the trait.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F58dHWKlLwfW3ccxM8tka%2Ftrait%20more%20actions.png?alt=media&amp;token=16137e3d-d1ce-4aed-8f1b-af6c518f09f9" alt=""><figcaption><p>The <strong>More Actions</strong> menu of each trait allows you to Rename or Delete the trait</p></figcaption></figure>

### Replacing the Image for a Trait

If you edit the image for a trait after it is uploaded, you can simply replace the image by clicking **More Actions > Replace Image** on the trait you want to replace. The **More Actions** button is the button with 3 dots (**⋮**) next to the trait name as highlighted below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FtLDL2U5hwa4wcNN9l0lf%2Freplace%20image.png?alt=media&amp;token=e266ecc5-aacc-461a-80fc-0302be8cd4fd" alt=""><figcaption><p>To replace the image for a trait, click <strong>Replace Image</strong> In the <strong>More Actions</strong> menu for the trait</p></figcaption></figure>

You can drag and drop the new image, or click **Choose Image** to select it from your file explorer. Alternatively, if the image is already inscribed, you can enter the Inscription ID instead.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fe5WrYNSSAzcrIbK063Q3%2Freplace%20image%20modal.png?alt=media&amp;token=3a348195-c0de-4ac8-b515-92df7e76d30d" alt=""><figcaption><p>Images can be replaced with a file, or the Inscription ID of an already inscribed image</p></figcaption></figure>


# Configuring your Traits

In this section, we explain how you can configure your traits to generate your collection with GeneratOrd

{% hint style="info" %}
If you have a complex collection, GeneratOrd's auto generation may not be sufficient for you. In this case you may need to generate the collection using third party tools and/or scripts. See [this section](/generative-pfp-collection/generating-your-collection#creating-a-custom-collection) for more details about this.

If you do choose to create a custom collection with third party tools, you do not need to configure the traits as described in this section. This section is only required if you are using GeneratOrd's auto generation features.
{% endhint %}

## Setting the Layer Order

The layer order is the order in which each of the traits should be layered on top of each other when creating the images. To set the correct layer order for your collection, navigate to the **Traits Tab** of your collection, and select **Layer Order** from the side navigation bar. You will see a list of each of your trait types, as well as s preview image to help you set the layer order.

{% hint style="info" %}
The Trait Types are ordered so that the background layers are first (at the top of the list), and the foreground layers are last (at the bottom of the list). So put your background trait type first, then each subsequent trait type will be layered on top of the previous.
{% endhint %}

&#x20;When you first add your traits, the layer order will likely be incorrect. In the screenshot below, the preview image is clearly not right. We can see the Head trait type, and a couple of Tattoos, however, the Clothing, Topper and Expression are all hidden, because in the current configuration, the Background is being layered on top of these traits.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F36h8fTq6apocclz18Rpf%2Flayer%20order%20initial.png?alt=media&amp;token=047edbee-fc2b-4531-8482-1267c4dd287b" alt=""><figcaption><p>The Layer Order page. Drag and drop each trait type to reorder the layers. As you do so, the preview on the right will automatically update.</p></figcaption></figure>

You can reorder your trait types by dragging and dropping each item in the list. As you do so, the preview image will automatically update, helping you to verify that the order is correct. In the screenshot below, we have moved the background to the top of the list as it should be the first trait, and reordered a few of the other traits, and now the preview is displaying correctly.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FEiPkLUKNt31eTBYKFFCd%2Flayer%20order%20final.png?alt=media&amp;token=baf2c110-bab3-4b6a-98d1-2abf9befba3b" alt=""><figcaption><p>The Layer Order page after the layers have been reordered into the correct order. The preview now displays the image correctly.</p></figcaption></figure>

## Setting Trait Rarities

The trait rarities determine how often each trait appears in the collection. You can configure some traits to be rarer or more common than others.

To do this, navigate to the **Traits Tab** and select **Rarity** from the side navigation bar. You will see the following page. You can click on the Trait Type name to open or close each trait type, allowing you to easily navigate through all your traits.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FMEmlHfbPNrYGo0PH2IIq%2Ftrait%20rarity.png?alt=media&amp;token=9e79dac2-856e-4e40-9189-c2096e32c05b" alt=""><figcaption><p>The Trait Rarity page.</p></figcaption></figure>

For each trait, there are two things you can configure. You can set the [Rarity Type](#rarity-types) to either **Weighted** or **Fixed**, and you can set the rarity of the trait, either by typing in the text box, or by clicking the Plus and Minus buttons to increment/decrement the rarity. The meaning of the number in the text box depends on the rarity type and is explained below. The expected percentage is also shown which indicates what percentage of the collection will have the given trait when the collection is generated.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FRDDH9pIPW4GsjV16JPeC%2Ftrait%20rarity%20row.png?alt=media&amp;token=f65c8f10-7a82-48d1-88b6-185a65bcf7bf" alt=""><figcaption><p>The rarity configuration for the <strong>Lightning</strong> trait.</p></figcaption></figure>

### None Trait

In each trait type, there is always a trait called **None**. This is not a normal trait, and instead represents the absence of a trait. By default, the None trait always has a rarity of 0, meaning it will not be used in the generation process. However, if you set the rarity to a non zero value, then some traits will not have that trait type.

For example, if you leave the rarity of the **None** trait for the **Background** trait type with the default of 0, then every item in the collection will have a **Background**.

However, if you set the rarity of the **None** trait for the **Clothing** trait type to a non zero value, then some items of the collection will not have a **Clothing** trait.&#x20;

It is important to note that the items that do not have clothes **do not** have a "Clothing: None" trait, instead, they do not have a Clothing trait at all. This means, that the **None** trait will not appear on marketplaces.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F1EGQIs3iLxMTVVTDSuuo%2Fnone%20trait%20rarity.png?alt=media&amp;token=95dfb95f-e8ae-4420-a717-4d496c71344f" alt=""><figcaption></figcaption></figure>

### Rarity Types

Each trait's rarity can be set to either **Weighted** or **Fixed**.

#### Weighted

When you set the rarity type to **Weighted** then the value in the text box represents the weighted rarity of the trait, and the rarity of each trait is determined by the value of the weight in comparison to all the others. For example: if the weight of **Trait A** is twice the weight of **Trait B**, then **Trait A** will appear twice as often as **Trait B**. Increasing the weight will make it more common, while decreasing it makes it rarer.

{% hint style="info" %}
Weights are related to the percentages, but are not the same. While percentages have to add up to 100%, weights do not, and can add up to anything. To make it easier to convert from weights to percentages, the percentage is shown underneath the weight of each trait. You can increase or decrease the weight of each trait to reach your desired percentage.&#x20;

If you want more fine tuned control, and want to set the percentage of each trait exactly, you can also do this. If you make sure that the weights of each of the traits in a single trait type add up to 100, then the weights will equal the percentages, as you can see below. This only works if all traits are **Weighted**, and none are **Fixed**.
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FHg6NM2KAOACtT3QIpnQI%2Ftrait%20percentage.png?alt=media&amp;token=9aabe6ae-c2cd-4dfd-b2aa-646ed3ddb0bb" alt=""><figcaption><p>An example of setting the percentage rarity of traits. The value of each weight is exactly equal to the expected percentage. This is done by setting each trait in a trait type to Weighted, and then making sure the weights add to 100.</p></figcaption></figure>

The collection generation process is random, so while the expected percentages shown are likely to be accurate, it possible for the actual result to be slightly lower or higher than expected. There is one exception to this. If you set the rarity to 0, then there will **always** be zero instances of that trait. If you want to ensure a trait is used an exact number of times, consider using **Fixed** rarities.

#### Fixed

When you set the rarity type to **Fixed** then the value in the text box represents the exact number of items that will have the given trait. For example, if you set the rarity type to **Fixed** with a value of 100, there will be exactly 100 items in the collection that have that trait.

{% hint style="warning" %}
If you set the rarity type to **Fixed** for all traits in a trait type, it is important that the value of all the traits exactly adds up to the collection size. Otherwise, you will get an error when you try to generate your collection.
{% endhint %}

When you set a rarity type to **Fixed**, you may notice that the expected percentage shown becomes '??', as you can see below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FFOvcZlgwQD2B0RD3Oo9a%2Ffixed%20rarity%20%3F%3F.png?alt=media&amp;token=b1391a85-7ded-4a30-a2af-460ec2381b80" alt=""><figcaption><p>Before generating the collection, <strong>Fixed</strong> rarity traits will have an unknown expected percentage. Generating the collection and setting a collection size will fix this.</p></figcaption></figure>

This happens when you haven't generated the collection yet, meaning GeneratOrd doesn't know how many items will be in your collection. After you have generated the collection and set the collection size (See [Generating your Collection](/generative-pfp-collection/generating-your-collection#using-generatord-to-generate-your-collection) for details), the expected percentage will display correctly.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FBKg5Ja9oorfhpqcJ0EGj%2Ffixed%20rarity%2010.png?alt=media&amp;token=5673df1a-b1c2-4137-963e-2e9fcc8c8a16" alt=""><figcaption><p>After setting the collection size to 1000, the expected percentage displays correctly as 10.0% (i.e. 100 items).</p></figcaption></figure>


# Generating your Collection

There are two main ways to create your collection; you can use GeneratOrd's built in auto [generation tool](#using-generatord-to-generate-the-collection), or you can use third party tools to create a [custom collection](#creating-a-custom-collection) and import it into GeneratOrd.&#x20;

{% hint style="info" %}
GeneratOrd's auto generation is still a work in progress, and still has limited functionality. So if you have a more complex collection you may need to generate your collection using third party tools and import it into GeneratOrd.

GeneratOrd supports:

* Configuring different [rarities](/generative-pfp-collection/configuring-your-traits#setting-trait-rarities) for each trait
* Optional trait types with the use of the [None Trait](/generative-pfp-collection/configuring-your-traits#none-trait)
* Manually [editing and saving custom items](#editing-individual-items)

GeneratOrd does not support:

* Custom rules (e.g. rules that disallow certain trait combinations, or rules that require certain traits to be used with a specific trait)
* Different groups/classes of items, each with different traits, settings and rules (e.g. a Male and Female type, each with different traits and rarities)

If your collection has complex requirements that cannot be met by GeneratOrd, you can still create your collection without GeneratOrd and import it in. See [here](#creating-a-custom-collection) for more details on how to do this
{% endhint %}

## Using GeneratOrd to Generate your Collection

To generate your collection, navigate to the **Collection Tab**, and click **Generate Collection**. The collection can be regenerated as many times as you like.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FkUClc9Vf1miCyoewjPOK%2Fempty%20collection.png?alt=media&amp;token=547a62b6-8eed-4e23-ac3d-56243626fbd0" alt=""><figcaption><p>Click <strong>Generate Collection</strong> to create your collection</p></figcaption></figure>

The first time you do this, you will be prompted to enter your collection size. This is the number of items in the collection, or the 'supply'. You will only be asked to set this once, however it can be edited later on if needed (See [Changing the Collection Size](#changing-the-collection-size))

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fa1yw54NJhs6HZUSHf0qC%2Fcollection%20empty%20size%20prompt.png?alt=media&amp;token=6d6d0f37-5399-41f1-b8f7-b0c3d4f19fae" alt="" width="563"><figcaption><p>When generating the collection for the first time, you will be prompted to enter the collection size.</p></figcaption></figure>

After entering your collection size, and clicking **Generate Collection**, your collection will be generated and you will be shown a preview of it, as seen below. If you need to change any of the traits, or the layer order/rarities (See [Preparing your Traits](/generative-pfp-collection/preparing-your-traits) and [Configuring your Traits](/generative-pfp-collection/configuring-your-traits)), then you can click **Regenerate Collection** at any time to do this again.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fo5x4jRhdbgFYWi47kqPu%2Fcollection%20generated.png?alt=media&amp;token=9676d9bd-c6ed-4804-82f3-b689ac47b013" alt=""><figcaption><p>Preview of the collection shown after generating the collection.</p></figcaption></figure>

### Changing the Collection Size

After you have generated the collection, you can change the collection size by clicking **More Actions > Edit Collection Size**. The **More Actions** menu can be found in the top right of the page, and is the button with the 3 dots (**⋮**). You will be prompted to enter in a new collection size, and after changing the size, the collection will be regenerated. Any items you have favourited will not be regenerated, however if you are reducing the collection size, some of the favourited items may have a different Token ID (i.e. a different position in the collection).

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FNThth70ffqaUEz0BPUd1%2Fedit%20collection%20size.png?alt=media&amp;token=3f9d39df-294e-46ea-90b8-964a4b3c6d16" alt="" width="563"><figcaption><p>Click <strong>More Actions > Edit Collection Size</strong> to change the collection size after the collection had been generated</p></figcaption></figure>

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F5QlBldy0m2Ap1JmYt7hm%2Fedit%20collection%20size%20modal.png?alt=media&amp;token=9a59c734-e039-40d9-97a1-280f062fd2ae" alt="" width="563"><figcaption><p>You will be prompted with this when changing the collection size. The collection will be regenerated when you change the collection size.</p></figcaption></figure>

### Regenerating Individual Items

If you are happy with the majority of your collections, but there are just a few items that you don't like, you can regenerate just the ones you don't want. To do this, simply click the **Regenerate** button underneath each image (as shown below). This will randomly regenerate just that item, while still using the rarity requirements you have configured.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FAw5syZPwwMSVhMHV16Ff%2Fregenerate%20item.png?alt=media&amp;token=2ec51791-ef7f-48e9-99e4-106d64a04eec" alt="" width="213"><figcaption><p>You can regenerate a single item by clicking the <strong>Regenerate</strong> button underneath the image</p></figcaption></figure>

### Favouriting Items

Each item can be favourited, or unfavourited by clicking on the **Favourite** button (Heart Icon) below each image. When an item is favourited, it cannot be edited or regenerated. So, when you regenerate the collection, the favourited items will remain unchanged. It also disables manual editing of individual items. To edit a favourited item, you must unfavourite it first.

Unfavourited items are indicated by an unfilled, grey icon, while favourited items have a filled, red icon as you can see below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FMJkc8s46d6Rtt2UzrJ6U%2Funfavourited.png?alt=media&amp;token=eb5d997b-e682-4c9d-afb2-75a6df2d866b" alt="" width="227"><figcaption><p>Click on the <strong>Favourite</strong> button (Heart Icon) to favourite an item</p></figcaption></figure>

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FYasVjNowQugZkSXu4MxW%2Ffavourited.png?alt=media&amp;token=da3664e3-1969-477c-a094-4f5567bccd18" alt="" width="213"><figcaption><p>This item has been favourited, which is indicated by the red heart icon. This button can be clicked again to unfavourite the item.</p></figcaption></figure>

### Editing Individual Items

Each item can be manually edited. To do this, click on the image for the item, and it will open up a dialog showing the traits for the item. Within this dialog, click **Edit**.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F6qQHAOyTPtqKRbxOQndg%2Fitem%20modal%20edit%20button.png?alt=media&amp;token=89edd4eb-3d03-4fbe-99a5-2741c3c587ce" alt=""><figcaption><p>The dialog shown when you click on an item. You can edit the item by clicking <strong>Edit</strong>.</p></figcaption></figure>

After clicking edit, each trait type and trait is shown in a dropdown box that can be edited. For each trait, you can change the trait type, and the trait value. You can also delete any of the traits, add new traits, or reorder the traits by dragging and dropping the icon on the left of each row. As you make edits, the preview on the left will automatically update. Once finished, click **Save** to save it, or **Cancel** to undo your changes and revert back to the original.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FxvDmRPLovgXAXmE49aTH%2Fedit%20item%20modal.png?alt=media&amp;token=3839a240-0a5b-4fe6-88f5-975e2780a5bc" alt=""><figcaption><p>When editing an item, you can change trait types and trait values for each trait, add and remove traits, and reorder traits.</p></figcaption></figure>

### Shuffling the Collection

Shuffling the collection can be useful for a variety of reasons, particularly if you have manually created some custom items, and want them to be shuffled randomly into the collection instead of all being at the start.

In order to shuffle the collection, click **More Actions > Shuffle Collection** (The **More Actions** menu can be found in the top right of the page, and is the button with the 3 dots (**⋮**)).

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FqGWWpkd1E6VBVkeyyduf%2Fshuffle%20collection.png?alt=media&amp;token=bceef368-7db2-4d44-8d1c-23a4f1198eb4" alt="" width="563"><figcaption><p>Click <strong>More Actions > Shuffle Collection</strong> to shuffle your collection. This randomly reorders the items, without changing any of them.</p></figcaption></figure>

Before shuffling, you will be asked if you want to shuffle your favourites.&#x20;

* If you choose **not** to shuffle favourites, then the entire collection will be shuffled, **except the favourites**, meaning all favourites will still have the same Token ID before and after shuffling. This is useful if you have favourited items that you don't want to move, because they have a meaningful/significant Token ID for your collection.
* If you do choose to shuffle favourites, then the entire collection is shuffled as normal, including favourites. This is useful if you have manually created some custom items and favourited them, but want to shuffle them randomly into the collection so they aren't all clumped together at the start.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FvLxX05JTpOSykaq3j91e%2Fshuffle%20favourites%20modal.png?alt=media&amp;token=eae9d6f3-d9cd-457f-ba85-656ded125bc4" alt="" width="563"><figcaption><p>When shuffling the collection, you will be given the option to shuffle favourites or not.</p></figcaption></figure>

### Creating Custom Items

One common way to use the features described above it to create custom items for you collection. i.e. specific trait combinations that you want to make sure are in your collection. To do this, edit the first several items (See [Editing Individual Items](#editing-individual-items)) so that they have the specific traits you want. You can do this for as many items as you like.

For each item that you edit, make sure to favourite it, so that it not regenerated if you choose to regenerate the collection (See [Favouriting Items](#favouriting-items)).

You likely don't want all your customs all together at the start of the collection, so once you have finished creating the customs, you can shuffle the collection, making sure to include the favourites in the shuffle, so your custom items get randomly shuffled through out the collection (See [Shuffling the Collection](#shuffling-the-collection)).

Alternatively, if you want your customs to have specific Token ID's, you can edit those specific items. If you do this, you would not want to shuffle the favourites, as this would mean your customs are no longer on those specific Token ID's.

## Creating a Custom Collection

If your collection has complex requirements that can't be met with GeneratOrd's built in collection generation tool, you may need to generate the collection externally and import it into GeneratOrd. To do this, you will need to upload a JSON file that containing all the information about which traits are in each item. The format for this file is described [here](#json-file-format).

There are several ways to create this file, which are discussed [below](#creating-your-collection-json-file).

To upload the JSON file, click on **More Actions > Upload Custom Collection** (The **More Actions** menu can be found in the top right of the page, and is the button with the 3 dots (**⋮**)). You will be prompted to upload your JSON file.

{% hint style="warning" %}
If you have already created a collection, and favourited some items, then uploading a custom collection will overwrite these favourited items.
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FCWEqV13h3M4SCTkc0pVt%2Fupload%20custom%20collection.png?alt=media&amp;token=ebe14d4e-e93b-4476-a8f9-7da54bb8937c" alt="" width="563"><figcaption><p>Click <strong>More Actions > Upload Custom Collection</strong> to upload a custom collection file you have created.</p></figcaption></figure>

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FFqVeJYcqh9l2VejqUAVg%2Fupload%20custom%20collection%20modal.png?alt=media&amp;token=40e4657c-1b7f-4505-ac82-b7ecb6d4ede2" alt="" width="563"><figcaption><p>You will be presented with this dialog when uploading a custom collection.</p></figcaption></figure>

### JSON File Format

The collection metadata file contains all the information about which traits are in each item in the collection.&#x20;

It has the following format:

```json
[
  [
    {
      "trait_type": "<trait_type>",
      "value": "<trait_name>"
    },
    {
      "trait_type": "<trait_type>",
      "value": "<trait_name>"
    },
    ...
  ],
  [
    {
      "trait_type": "<trait_type>",
      "value": "<trait_name>"
    },
    {
      "trait_type": "<trait_type>",
      "value": "<trait_name>"
    },
    ...
  ]
  ...
]
```

{% hint style="info" %}
Here is a completed example of the [Metadata JSON file](https://76m5dlfsiafsjqyy.public.blob.vercel-storage.com/docs-files/metadata.json).
{% endhint %}

You do not need to have the same trait types, or even the same number of traits in each item. For example, you could have an optional 'Tattoo' trait type, where some items have a tattoo and some don't. On items that don't have a tattoo, simply omit that trait, meaning they will have fewer traits than items with a tattoo.

{% hint style="info" %}
It is important that the trait types and trait names are exactly the same as those set in the **Traits** tab. You must also make sure that every trait referenced in the metadata file has a corresponding trait in the **Traits** tab.

If either of these conditions are not met, GeneratOrd will let you know, and will not let you inscribe until you resolve the issue.
{% endhint %}

### Trait Order

The order of the traits within the metadata file is very important, as this determines the order in which the traits are rendered. For example, if you have the traits Background, Head, Face and Hat, then you need to make sure they appear in that order, so they are layered in the correct order:

{% code fullWidth="false" %}

```json
[
  ...
  [
    {
      "trait_type": "Background",
      "value": "Blue"
    },
    {
      "trait_type": "Head",
      "value": "Yellow"
    },
    {
      "trait_type": "Face",
      "value": "Smirk"
    },
    {
      "trait_type": "Hat",
      "value": "Bucket Hat"
    }
  ],
  ...
]
```

{% endcode %}

### Unique Items

If your collection has unique items or 1/1's, you include these the same as any other item, but they just have one trait.

```json
[
  ...
  [
    {
      "trait_type": "Unique",
      "value": "<name of unique item>"
    }
  ],
  ...
]
```

### Creating your Collection JSON File

#### Using a Script

{% hint style="info" %}
Using a script to generate your collection does require some technical ability. While you do not necessarily need to know how to write code, you do need to be able to run a script. The [generatorderv2](https://github.com/Vanniix/generateorderv2) script has some basic instructions for how to do this.

However, if this is not something your able to do, we can help. We can generate the collection JSON file for you based on your requirements for an additional fee. The additional fee will depend on the complexity and size of the collection. Please get in [contact with us](/contact-us) if this is something your interested in.
{% endhint %}

The most common way to generate the metadata file is to use a script that creates it. If your collection has very specific requirements, you may choose to write this script yourself. However, it is more common to use a script created by someone else.

We recommend using the generatorderv2 script, which is a script initially written by [@ItsFranken](https://x.com/ItsFranken) and maintained by the team at GeneratOrd. It is designed specifically for GeneratOrd, and creates the metadata file in the correct format. Make sure to read the README to learn how to use the script properly.

{% embed url="<https://github.com/Vanniix/generateorderv2>" %}

The HashLips Art Engine is another very common tool that is used to create the collection JSON. It has been around for a long time, and there are many tutorials explaining how to use it. However, it is no longer maintained. If you are using it, the `build/_metadata.json` file that it creates is the file you upload to GeneratOrd.

{% embed url="<https://github.com/HashLips/hashlips_art_engine>" %}

#### Using a Third Party NFT Generation Tool

There are many collection generation tools designed for other blockchains such as Ethereum and Solana. These can be used to generate your collection, as they have many more features. However, this does come with additional costs, as you have to pay the fees associated with these tools. Some good websites you could use include [Bueno](https://bueno.art/) and [NFT Art Generator](https://nft-generator.art/), but there are many more.

If you use a third part tool, it may provide you with in a different format to what GeneratOrd requires, so you may have to convert it before uploading to GeneratOrd. If you are unable to convert the files yourself, then please [contact us](/contact-us). We will happily convert metadata files made with third party tools to the required format at no extra cost.

Fortunately, both Bueno and NFT Art Generator will provide metadata files that you can upload directly to GeneratOrd without any modification.

* If using Bueno, go to **Launch > Token Sets** and click **Get Started**. Follow the prompts and after payment you will be given several formats to download the metadata. Select **Metadata JSON** (NOT **Tokens JSONs**). The downloaded file can be uploaded to GeneratOrd as described [here](#creating-a-custom-collection).
* If using NFT Art Generator, go to **Export** and make the payment. You will be given a zip file to download. Unzip this file and open it. Find the file called **metadata.json** inside of the **metadata** folder. This file (**metadata.json**) can be uploaded to GeneratOrd as described [here](#creating-a-custom-collection).


# Exploring your Collection

It is very important to closely examine your collection before inscribing to make sure there are no mistakes. In this section we discuss some of the features GeneratOrd has that make it easy to explore your collection.

If you navigate to the **Collection Tab** of your collection, you will see a preview of your entire collection.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fo5x4jRhdbgFYWi47kqPu%2Fcollection%20generated.png?alt=media&amp;token=9676d9bd-c6ed-4804-82f3-b689ac47b013" alt=""><figcaption><p>Preview of a collection in the <strong>Collection Tab</strong>.</p></figcaption></figure>

### Jump to Token ID

To jump to a specific Token ID, simply enter a number in the ID input in the top left, and press **Go**. The page will scroll down to bring that item into view.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FM6lCUZhw7MdBqYFvaeIO%2Fgo%20to%20id.png?alt=media&amp;token=61b8f97b-928e-4153-ac96-35e0b470f4b8" alt=""><figcaption><p>Simply type a Token ID into the highlighted number input, and press <strong>Go</strong>. This screenshot shows the result after entering Token ID 500.</p></figcaption></figure>

### Filtering

Filtering is very useful to find all the items with specific traits, helping you to identify potential issues with your collection.

To filter your collection, simply click the **Filter** button in the top left corner.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F1QgUOHTiNK8zQsGHQboV%2Ffilter%20button.png?alt=media&amp;token=775468a9-29c7-4c22-8e0c-f8865a3e331b" alt=""><figcaption><p>Click <strong>Filter</strong> to open the collection filter.</p></figcaption></figure>

This will open up the filter as a side pane on the left. Here you can open up each trait type, and filter by any trait you want. You can also apply the Favourites filter, to show just the items you have favourited. There is also a filter in each trait type called **None**, which will show all the items that **do not** have that trait type. Underneath the filter button, it will show you how many items match the filter you have applied. In the screenshot below, we can see there are 75 items with **Tiger Stripe**. This can be used to check that your trait rarities are correct.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FVjyH4TivHgtnf50D39cf%2Ffilter%20single.png?alt=media&amp;token=5072276a-cb1e-45d1-b241-fe106fa9d87e" alt=""><figcaption><p>Collection with the <strong>Tiger Stripe</strong> filter applied. Every item shown has the <strong>Tiger Stripe</strong> trait.</p></figcaption></figure>

If you apply two or more filters from the same trait type, it will show all items that match **any** of the filters. For example, below we have the **Yellow** and **Slate** head filters, and it is showing all items that have either a **Yellow** or **Slate** head.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FI2h9WTmytkJuXexs8BTh%2Ffilter%20two%20traits.png?alt=media&amp;token=e3465b0a-74ca-4864-a064-224feed1967e" alt=""><figcaption><p>Selecting multiple filters in the same trait type shows all items that match <strong>any</strong> of the filters.</p></figcaption></figure>

If you apply two or more filters across different trait types, it will show all items that match **all** the filters. For example, below we have applied the **Collared Shirt** and **Fire Eyes** filters, and it is showing only the items that have both **Collared Shirt** and **Fire Eyes** traits.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FE8UomIZS4CO4AZ4BEvpf%2Ffilter%20two%20trait%20types.png?alt=media&amp;token=042aa750-9d62-44b8-9538-ad6474fe1e9e" alt=""><figcaption><p>Selecting multiple filters across different trait type shows all items that match <strong>all</strong> of the filters.</p></figcaption></figure>

### Quick Load

In the top right of the collection page, you can toggle on or off **Quick Load**.

* **With Quick Load On**: Each item is shown as a set of images (traits) stacked on top of each other, but the traits are not 'flattened' down into a single image. This means that if you try to right click and save the image, you will end only saving the top (foreground) trait, since you can only click the top trait (this is **NOT** how the final inscriptions behave). Additionally, the images are not displayed at their full resolution, but are rendered as the size shown (probably around 500px). These simplifications greatly improve the load time of the images, providing you with a seamless experience as you scroll through the collection, filter it, edit items and regenerate the collection.
* **With Quick Load Off**: A complete simulation of the final inscriptions is shown for each item. This means that the full HTML/Javascript code, along with the compressed metadata is all compiled and executed for each item to display the images. This is useful to see how the inscriptions will actually look like once inscribed, and to make certain there are no issues with the collection. The images will still load relatively quickly, but when doing certain editing such as regenerating, it can take a bit longer to load because it has to recompile and regenerate all the images simultaneously.

{% hint style="info" %}
The majority of the time, you will want quick load on, but it is worth turning it off before you inscribe to get an idea for how the inscriptions will actually look, and make certain there are no unexpected issues. Turning off quick load also gives an indication of how long it will take your images to load on explorers once inscribed, since it shows a full simulation of the inscriptions.

Most likely, you will not notice any visual difference compared to when quick load was on.
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F6d4B8iFVDqAH5sZYYAAG%2Fquick%20load.png?alt=media&amp;token=9bacd163-5999-465b-b151-07500c1ca69a" alt=""><figcaption></figcaption></figure>


# Inscribing your Traits

In this section we discuss how, and when you should inscribe your traits

{% hint style="info" %}
The cost of inscribing your traits is directly proportional to the file size of the traits. So, it is a good idea to try and compress the images before inscribing. We recommend converting to WEBP, as these are often the smallest file format. You should also experiment with resolution and compression quality to find a level of compression that has good enough quality at a decent cost. You can use our [price calculator](https://www.generatord.io/price-calculator/generative) to estimate the cost of inscribing traits given their file size.

If you are unsure how to compress your traits, or need more information, please [contact us](/contact-us). We will happily compress your traits for you at no extra cost.
{% endhint %}

## When Should I Inscribe my Traits?

Your traits do not have to be inscribed at the same time as you inscribe your collection. They can be inscribed at any time after the artwork is ready. Here are some considerations regarding when you should be inscribing your traits:

* Inscribing your traits will likely be the majority of the cost of your collection. As such, it is important not to overpay on transaction fees when inscribing your traits. We recommend you have your artwork ready early, then watch the fee rates for several days, or even weeks if you have the time, and inscribe your traits when fee rates are low. Doing this can save you quite a lot in inscription costs. [mempool.space](https://mempool.space/) is a great place to keep track of fee rates. The [FAQ](https://mempool.space/docs/faq) section in their docs also has lots of great information regarding fee rates.
  * **TLDR**: We recommend you have your artwork ready early, then watch the fee rates for several days, or even weeks if you have the time, and inscribe your traits when fee rates are low.
* If you have a lot of large traits, it can take quite a while for your traits to confirm after you have inscribed them. If you inscribe your collection before all your traits are inscribed, then your collection will not render properly until all traits are confirmed. Each Bitcoin block has a maximum of 4mb of data in it, but in practice, you will typically not get more than 1-2mb of your traits in each block (since other peoples transactions will also fill up blocks). Since there is only one block mined every 10 minutes, it can take time for large collections to have all their traits confirmed. For example, if you had 20mb of traits, then best case scenario, it would take 10 blocks (2mb per block) which would take around 100 minutes (close to 2 hours). However, if the network is busy, and/or fee rates rise, it could take significantly longer, perhaps even days to confirm all the traits. Therefore, we recommend you inscribe your traits at least a day (preferably more) before you inscribe your collection, particularly if you have a lot of data to inscribe.
  * **TLDR**: We recommend you inscribe your traits at least a day (preferably more) before you inscribe your collection, particularly if you have a lot of data to inscribe.
* Inscribing your traits is final. Once done, it cannot be undone, and you cannot edit the images/artwork. Thus, you want to be 100% sure that the artwork is completed before inscribing. It's not uncommon to realise changes need to be done to the artwork after you start generating the collection and seeing the traits combined into complete images, so consider if you should start generating the collection before you inscribe your traits. If you have inscribed your traits, and find you do want to edit your image, your only option is to reinscribe that trait, costing extra Bitcoin.
  * **TLDR**: You want to be 100% sure that the artwork is completed before inscribing, because it cannot be undone.
* If you are planning to inscribe the collection yourself, or through a third party such as a launchpad, then you will need to have your traits inscribed **before** you pay the fee to download your collection.
* If you are planning to inscribe the collection through GeneratOrd, the traits can be inscribed at the same time as you inscribe the collection. This is fine for smaller collections, but probably not for larger collections, with lots of large traits. See the 2nd point above about large collections.

## Inscribing your Traits

{% hint style="info" %}
GeneratOrd will only inscribe the traits which have not already been inscribed. For example, if you upload 50 traits as images, and add 40 traits with inscription ID's, then only the 50 images will be inscribed.

If you have already inscribed your traits, and wish to add more, simply upload them as images, then inscribe again. GeneratOrd will only inscribe the new traits you added.
{% endhint %}

Once you have uploaded all your traits, you can inscribe your traits by navigating to the **Traits Tab** and clicking **Inscribe Traits**&#x20;

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FfNmpHizMI71ULLb5DMaN%2Finscribe%20traits.png?alt=media&amp;token=c4b61aa6-2ba9-451a-9494-cbe01973f43f" alt=""><figcaption><p>To inscribe your traits, click the <strong>Inscribe Traits</strong> button in the <strong>Traits Tab</strong>.</p></figcaption></figure>

This will open the following dialog which is described in detail on the [Inscribing Page](/inscribing). The destination address is the ordinals address the traits will be sent to. It does not matter what address this is (the recursion will work regardless of where your traits are), but we recommend you use a fresh address that you own (i.e. an empty address).

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FerOptAWFWw1UTueNRFpw%2Ftraits%20inscribe%20modal.png?alt=media&amp;token=5b3b258f-7a2d-4d79-bdeb-5dfe2a0d5a51" alt="" width="393"><figcaption><p>The dialog shown when inscribing your traits.</p></figcaption></figure>


# Settings

There are a few settings you can modify in the settings tab of your collection. Most of these settings will be automatically set to recommended defaults (with the exception of Pixel Art), so you probably will not need to modify these.

To edit your settings, navigate to the **Settings Tab** of your collection. Make sure to click **Save** when you are done, otherwise your will lose your changes.

## Pixel Art

If your art is pixel art, you should select this option. Turning on Pixel Art ensures the pixels remain sharp even when resized.

If your art is not pixel art, you should leave this setting turned off. This enables image smoothing when the images are resized. This means that when you view the image at a larger size than its native size, the pixels will be smoothed out so that you cannot see individual pixels. For standard images (not pixel art) this typically makes images look better at large sizes.

However, for pixel art, you do not want the pixels to be smoothed out, as it creates an ugly blurred effect. You want the pixels to remain sharp, which can be achieved by turning on this setting.

## Compression

By default, your metadata file is compressed using the gzip file format. This typically reduces the size of the file by 50% or more, so it can save you a little bit in inscription fees. It will also result in the images loading slightly faster on ordinals explorers, because it has less data to fetch (however this will be very minimal).

However, you may not want the file to be compressed, as you may want it to be readable. In this case, just deselect this option.

## Image Size

This is the pixel size that your images will be rendered at when viewed on chain, or when downloaded. You will typically get the best results if this is the same size as your trait images (this is the default), but it doesn't have to be the same.

If this is different to the size of your traits, then your traits will get resized when drawn. You can use this to smooth out unwanted pixellation, and make it seem like your traits are higher resolution than they are (only works if [image smoothing](#image-smoothing) is on). For example, if your traits are 512x512, you may choose to set your rendered size to 1024x1024 to smooth out the pixels.

This does not need to be square. If your images are not a square, then you should make sure that the rendered size you put here is the same aspect ratio as your traits to prevent distortion.

## Include Onchain Metadata

{% hint style="info" %}
Onchain Metadata is only applicable if you are inscribing your collection through GeneratOrd. If you are not inscribing through GeneratOrd, you will not be charged the extra fee, even if you have turned on this setting.
{% endhint %}

Onchain metadata is metadata that is stored with each inscription. This consists of the traits/attributes of each item, the token ID of each item, as well as any other custom metadata you would like to add. See the screenshot below for an example of how this metadata is displayed on ordinals.com.

{% hint style="info" %}
Most explorers do not display onchain metadata. ordinals.com is one of the only places it is visible at the moment. Explorers such as Magic Eden use off-chain metadata that you provide them, so this setting has no impact on how your traits appear on most explorers.
{% endhint %}

Including on-chain metadata costs an additional 200 sats per inscription in GeneratOrd's service fees. It will also increase transaction fees, as it adds additional data to each inscription. The amount by which the fees increase varies from collection to collection, so if you want to know the cost difference, then check the cost summary in the Inscribe tab with metadata turned on and off.

#### Custom Metadata

By default, the Token ID and Attributes (traits) are included in you metadata if decide to include on-chain metadata. However, you can choose to add additional custom metadata.

To do this click the **Add Custom Metadata** button (this is only visible if you have ticked **Include Onchain Metadata**). You can then add custom properties. Each property has a **Label** and a **Value**.

In the example below, a single custom property has been added with a Label of **Author**, and a value of **Satoshi**.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FCjNU8xBAaMKinWK1nGb0%2FScreenshot%202023-11-12%20at%203.05.50%20pm.png?alt=media&amp;token=4a92424c-e024-4b6d-954c-ce975d88b795" alt=""><figcaption><p>Example of on-chain metadata created with GeneratOrd, as displayed on ordinals.com. Note: The <strong><code>Author</code></strong><code>: Satoshi</code> field is custom metadata. Author will not be included, unless you add it as custom metadata</p></figcaption></figure>


# Payment and Inscribing

Once your collection is complete, you have two options as to how you inscribe your collection:

1. **Inscribe with GeneratOrd:** You can inscribe your entire collection with GeneratOrd with just a few clicks (See [Inscribing with GeneratOrd](#inscribing-with-generatord)). If doing this, you can choose to inscribe the entire collection into a single address, or you can send each inscription to a different address (e.g. airdrop).
2. **Download and Inscribe yourself or with a 3rd party:** If you would prefer to inscribe some other way, you can do that too. You will still have to inscribe a couple of inscriptions through GeneratOrd to setup the collection, but the actual images of the collection can be downloaded and inscribed however you like (See [Download and Inscribe without GeneratOrd](#download-and-inscribe-without-generatord)). The most common reason to do this is because you are launching with an 'inscribe on demand' launchpad, such as Ordzaar or Gamma. You may also choose to do this if you have special requirements for you inscriptions that are not supported by GeneratOrd, such as Parent-Child, or inscribing on rare/exotic sats.

## Prepayment Checklist

However you choose to inscribe, it cannot be undone, so you want to be 100% sure that your collection is ready. Here are a few things to do before inscribing to make sure you are ready.

* If your art is pIxel art, make sure to turn on the Pixel Art setting in the **Settings Tab**. For more details see [here](/generative-pfp-collection/settings#pixel-art).
* Make sure your traits are inscribed. See [Inscribing your Traits](/generative-pfp-collection/inscribing-your-traits) for more details, but long story short, your collection will not render properly until all your traits are inscribed ***and*** confirmed, so it is a good idea to have this done early. If you are inscribing the collection with GeneratOrd, this isn't strictly necessary (GeneratOrd will automatically inscribe any uninscribed traits when you inscribe the collection), but we still highly recommend it. If you are inscribing without GeneratOrd, then you will be forced to inscribe your traits before making your payment.
* Look through every image in the preview shown in the **Collection Tab**. It's easy to make mistakes when generating your collection, especially when you have complex requirements. It's not uncommon to discover that certain traits don't work well together, only after generating the collection. So it's important to have a look through every image to make sure there are no mistakes.&#x20;
* Try turning off **Quick Load** to verify there are no unexpected issues. See [Quick Load](/generative-pfp-collection/exploring-your-collection#quick-load) for more details. Turning off quick load will show the images as a full simulation of the inscriptions (instead of just images), so it is good to double check this works as expected before inscribing. This also gives you an idea of how long your inscriptions will take to load on explorers.
* If you are inscribing the collection with GeneratOrd, we recommend you have a launchpad locked in who supports a preinscribed collection (e.g. Magic Eden). See the note [below](#inscribing-with-generatord) about preinscribed collections. This is important, as you don't want to end up with the entire collection in your wallet with no way to distribute them.

## Download and Inscribe without GeneratOrd

GeneratOrd's inscription capabilities are limited, so it is common to choose to download inscriptions and inscribe through a third party, or even inscribing it yourself. Reasons to do this include:

* Using an 'inscribe on demand' launchpads like Ordzaar or Gamma. These kinds of launchpads work by inscribing each item in the same transaction where minters pay. This means that the collection is not inscribed before launch, instead it is inscribed progressively as your collection mints out. This lowers costs for creators, as they don't have to pay to inscribe their collection (they do still have to pay to inscribe their traits though). If you choose to do this, you will need to download the collection and provide the files to the launchpad for them to inscribe.
* Inscribing your collection using Parent Child.
* Inscribing your collection on rare or exotic sats.

To download your collection for inscription, navigate to the **Inscribe Tab** and click **Download**. You will see the page below, and will have to pay the service fee. This is the fee for creating the recursive code and files needed to create your collection. **It does not include inscription costs**.

{% hint style="warning" %}
Before paying, make sure you have checked the [Prepayment Checklist](#prepayment-checklist) above. You will not be able to edit your collection after payment, so you need to be certain that nothing will need to be changed or fixed.
{% endhint %}

{% hint style="warning" %}
If you choose a custom fee rate, be careful not to set it too low. You will not have access to download your files until your payment is confirmed. If you set a low fee rate you may have to wait longer before gaining access to the files, and if your payment gets stuck in the mempool indefinitely, you may never get access to your collection.

We recommend no editing the fee rate for this payment. The network fee will likely be quite small anyway.

For more information about fee rates see [Fee Rate](/inscribing#fee-rate).
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F476jQdCZZUzqx5elmpu3%2Fdownload%20collection%20payment.png?alt=media&amp;token=14e07388-daee-42ce-aff6-903e6bbffb98" alt="" width="563"><figcaption><p>To download your collection, click <strong>Download</strong> in the <strong>Inscribe Tab.</strong></p></figcaption></figure>

After you have paid, you will be prompted to complete a 3 step process as shown below. If you have changed your mind, and want to inscribe your collection through GeneratOrd, you can click the **Inscribe All** button, which will inscribe all three steps in one go. This will inscribe your entire collection, so only do this if you want your collection inscribed.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F8GyZedT5i8YhNXlfx3AE%2Fdownload%20steps.png?alt=media&amp;token=d9e4cecf-7306-4a41-9929-498bc565aac0" alt=""><figcaption><p>After payment, you are prompted to complete 3 steps to inscribe your collection.</p></figcaption></figure>

Each step consists of inscribing a different file. The 3 steps **must be completed in order**. You do not need to know what the Metadata and Config files, so if you just want to know how to download your collection skip down to How to download your collection.

But if your are interested, here is a brief description of each file. For more details about how these files are used see [How does GeneratOrd work?](/readme/how-does-generatord-work)

1. **Metadata**: This is the raw data that describes your entire collection. More specifically, it contains the inscription ID's of all of your traits, and contains information about which traits are in each item of your collection.
2. **Config**: This is a Javascript file that contains basic configuration for your collection. It contains information such as: the inscription id of the metadata inscription, the resolution to render the images at, whether the images are pixel art or not, etc. This can also be edited to achieve more advanced functionality, however we do not recommend doing this unless you know what you are doing.
3. **Collection**: This is your actual collection. It consists of a single HTML file for each item in your collection, and when inscribed each HTML file will display one item in your collection.

### How to download your collection

At each step, you have to inscribe a different file. It is easiest to just click the green **Inscribe** button for each step, however you can also download the file and inscribe it yourself if you prefer. When inscribing, you will be presented with a payment form. See [Inscribing](/inscribing) for more details about this form.

{% hint style="info" %}
When inscribing the Metadata and Config inscriptions (Step 1 and 2), it does not matter what you put for the destination address. The destination address is the address these inscriptions are sent to. The recursion will work perfectly fine regardless of where these are sent to (it will even still work if these inscriptions are burned).

So you can sent it to any address that is convenient for you. It is common to put these in the same address that your traits are.
{% endhint %}

1. For the first step, simply click the green **Inscribe** button in the box labelled **Step 1. Metadata**. Alternatively, you can download the metadata and inscribe yourself, but you should only do this if you have a reason to. If you are not sure, just inscribe through GeneratOrd by clicking **Inscribe**.
2. For the second step, again, just click the green **Inscribe** button in the box labelled **Step 2. Config**. If you chose to download the metadata and inscribe it yourself in step 1, then you will need to enter the inscription ID from that into the text field for Step 2. Again, you can also choose to download the config file and inscribe it yourself, but you should only do this if you have a reason to. If you are not sure, just inscribe through GeneratOrd by clicking **Inscribe**.
3. Finally, for third step, you can now download your collection by clicking the blue **Download** button in the box labelled **Step 3. Collection**. When you download this, you will get a zip file, which you need to unzip. It will contain a folder containing many HTML files. These are the files that need to be inscribed to create your collection. Again, if you chose to download the config and inscribe it yourself in Step 2, then you will need to enter the inscription ID from that into the text field for Step 3. If you have changed your mind, and want to inscribe your collection through GeneratOrd, you can still do this by clicking the green **Inscribe** button in Step 3, or by clicking **Inscribe All** in the top right corner.

If you are using an inscribe on launchpad such as Ordzaar or Gamma, you will need to provide the HTML files you downloaded in Step 3 to them.

{% hint style="info" %}
If you open one of the HTML files from Step 3 in a browser such as Chrome, you will find it won't display anything. This is because they only work after they are inscribed.

If you want to test that the inscriptions are all working correctly, you can still do that using an inscription preview tool created by [@lifofifo](https://x.com/lifofifo).

To do this, open up one of your HTML files using a text editor and copy the contents. It will look something like this:

```html
<!DOCTYPE html><script 1 src=/content/5c9cd963b41bebc0b7b8c68fdbf5a99e60387d44b4400c2d2c0749874b4278bfi0></script>
```

Then, open up this [link](https://ordinals.com/content/c24b53e7733d72a8662676bd2067fa7e715fa5c2ea614b7727da9787def47aeai0) to the ordinals previewer, and paste the contents of the HTML file into it. Click **Preview Inscription**, and you should see the image that is created by that HTML file.

You can repeat the process with other HTML files to see other images to.

*Note: The preview will only work if all your previous inscriptions are confirmed.*
{% endhint %}

## Inscribing with Generatord

Inscribing your entire collection through GeneratOrd is very simple, and can be done with just a few clicks. If you wish to inscribe your collection with GeneratOrd, simply navigate to the **Inscribe Tab** and you will see the page in the screenshot below. This will inscribe everything needed for your collection all at once. i.e. it will inscribe steps 1, 2, and 3 as described [here](#how-to-download-your-collection). The total cost of inscribing this way is identical to if you follow the steps [above](#download-and-inscribe-without-generatord), the only difference is that you are paying it all in one go here. For more details about this inscribing form, see [Inscribing](/inscribing).

{% hint style="warning" %}
If you choose to inscribe with GeneratOrd, it is important you have a distribution plan.

Most ordinals launchpads (e.g. Ordzaar, Gamma, etc.) operate with an 'inscribe on demand' model, meaning you provide them with the files to inscribe, and the files are inscribed as the users mint the items (i.e. the users inscribe the collection, not you).

There are very few launchpads that launch preinscribed collections. Magic Eden is the most popular, however they don't accept many projects.

We recommend you have a launchpad locked in before you inscribe through GeneratOrd, and make sure they can launch with preinscribed assets.
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F6OY1UOj8uanwJMHhZMKu%2Finscribe%20form.png?alt=media&amp;token=b4559cf8-90cf-4462-bbb5-45dffcf7e81c" alt=""><figcaption><p>Form displayed when inscribing your collection.</p></figcaption></figure>


# Ditto

A Ditto is a collection where every item displays an identical image.

This feature can be used for a number number of options:

* Membership pass to tokenise a community
* Artist Editions of an identical piece of art
* As a POAP equivalent (proof of attendance protocol)

Using recursion you can easily create and distribute exact copies of a high-quality image at a fraction of the cost. Each item will be associated with a unique Token Number, which can optionally be displayed on the image.

## Settings

While adjusting your settings, the item preview will automatically update, so you can see how it will appear when inscribed.&#x20;

{% hint style="warning" %}
Make sure you save your settings before you inscribe to ensure your inscriptions contain the correct settings. If you are unsure if your settings have saved, check the preview in the summary tab, as this displays the image using your saved settings.
{% endhint %}

### Display Image

When setting your display image, you can choose between **Upload Image** or **Use Inscription ID**.

In either case, the display image must be one of the following file types: WEBP, JPEG, PNG, APNG, AVIF, GIF or SVG.

Animated images, such as GIFs and APNGs are supported, and will animate properly.

#### Use Inscription ID

If you have already inscribed your display image, simply select **Use Inscription ID**, and enter the inscription ID of the image.

#### Upload Image

If you have not inscribed your image, simply select **Upload Image**, and upload your image. GeneratOrd will inscribe this image for you when you inscribe your collection.&#x20;

{% hint style="info" %}
Since this file needs to be inscribed, it is important to consider the size of the file. **GeneratOrd limits the size of images to 350kb** (this is due to limitations of Bitcoin transactions, as well as a safety margin).

If your image is larger than 350kb, you will need to compress it. For standard images, we recommend converting to WEBP, as this typically offers the smallest file size. You can also try reducing the dimensions of the image, or reducing the compression quality. There are many free online image converters that allow you to do this.

Also, larger files incur larger transaction fees, so it may be worth optimising your image if it is large. If fee rates are high, a large image can cost several hundred dollars in to inscribe. If you have a large image and fee rates are high, it may be worth trying to compress it to reduce fees.
{% endhint %}

### Collection Size

This is the total supply of your collection.&#x20;

Collections generated with GeneratOrd are fixed, meaning once inscribed, you cannot increase the size of the collection. This is to prevent anyone from inscribing new Ditto's using your inscriptions.

{% hint style="info" %}
While it is impossible to inscribe a new Ditto, it is possible to inscribe a duplicate of an existing one.

i.e. If your supply is 100, then it is impossible to inscribe a Ditto with a Token Number of 101, as it is not part of the original collection. However, someone could inscribe Token Number 99 by copying the existing one.
{% endhint %}

### Token Number

Each item is assigned a unique Token Number, starting from 1, and increasing up to your collection size.&#x20;

There are 3 options regarding how the Token Number is shown:

* **Never:** The Token Number is not displayed.
* **On Hover:** The Token Number is displayed when the mouse is hovering over the image. Otherwise, it is not visible
* **Always:** The Token Number is always visible.

There are also a number of options allowing you to customise how the Token Number looks:

* **Position:** Choose which corner of the image the Token Number is shown.
* **Font:** Customise the font style, size and colour.
* **Background:** Customise the colour, size and corner radius of the background surrounding the Token Number. If you do not want a background, set the opacity to 0.
* **Border:** Customise the style, colour and width of the border surrounding the Token Number. If you do not want a border, set the style to **None**.

## Inscribing

The inscription process for Ditto's is very similar to the inscription process for Generative PFP Collections, just with a couple of minor differences. See [Payment and Inscribing](/generative-pfp-collection/payment-and-inscribing) for more details


# Banner Creator

Flex your inscriptions with your ord.io banner!

The Recursive Banner Creator uses HTML, CSS and JavaScript to display your inscriptions in a custom banner on X or ord.io.

Simply enter in as many inscription ID's as you want, and we will generate your banner for you.

{% hint style="info" %}
You must input **Inscription ID's**, not **Inscription Numbers**. An inscription ID is a sequence of numbers and letters, that looks like:

`6de9ff0970fa0fe613b1f7d29782a9ebe9f16dc40f63529a14990dbc91f3e643i0`

You can find inscription ID's on all the marketplaces and explorers.
{% endhint %}

The banner will adjust to display correctly on any screen size when used as an ord.io banner.&#x20;

Because ord.io banners expand to the full width of the screen, these banners work best with lots of images, as this reduces empty space around the edges. We recommend at least 7 images, but you can add as many as you want.

However, on mobile, only the middle 2 or 3 images will be visible, so make sure your best inscriptions are in the centre.

Supported inscription file types: WEBP, JPEG, PNG, APNG, AVIF, GIF and SVG

{% hint style="warning" %}
While we do support animated image formats such as GIF and APNG, the banners do not support animation, meaning if you use an animated image, it will just display the first frame of the animation.
{% endhint %}

### Inscribing

You can choose to inscribe yourself, or inscribe with GeneratOrd.

If you want to inscribe yourself, simple download the banner and inscribe the HTML file.

If you want to inscribe with GeneratOrd, simply set the fee rate, padding and destination address (more details [here](/inscribing)), and click Inscribe.

{% hint style="info" %}
We do not charge a fee for Banner creation or inscribing, however, if your feeling generous, you can add an optional tip.

If you can afford to add a tip we would greatly appreciate it, as it helps us to keep adding awesome features to GeneratOrd.
{% endhint %}

The resulting inscription is fully on chain and can be right click saved as an image to use wherever you want.

{% hint style="warning" %}
The ord.io banner inscription won't show up correctly on explorers as it automatically fits to the height of the screen you’re using.

Make sure to set it as your banner on ord.io to see it as it's meant to be viewed.
{% endhint %}

### Creating a Banner for X (Twitter)

X Banners have a ratio of 3:1, so if you put 3 inscriptions in, you will generate a banner perfect for X. Simply enter your 3 favourite inscriptions, then right click, save image and set it as your banner on X.&#x20;

### Examples

You can view some examples, as well as other templates we’ve created in the wallet and repo below:

<https://github.com/sanjfomojis/Recursion-OMBounty>

OMBounty Wallet: [bc1ppd5yvz8dektaf9962he9lqvj64vqw6eep9lh36h7syaga60hnuhsr3v2wy](https://www.ord.io/bc1ppd5yvz8dektaf9962he9lqvj64vqw6eep9lh36h7syaga60hnuhsr3v2wy)


# Inscribing

{% hint style="info" %}
This page describes inscribing in general. For more specific details about inscribing if you are creating a Generative PFP Collection, see [Payment and Inscribing](/generative-pfp-collection/payment-and-inscribing).
{% endhint %}

There are several places throughout the GeneratOrd website where you can inscribe, and in each case the UI displayed is the same (shown below). The two most important settings to understand are the [Inscription Destination](#destination-address) and the [Fee Rate](#fee-rate)

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2ForImmvjwBdDtnqQo0oMn%2Fcropped%20inscribe%20form.png?alt=media&amp;token=ffce9962-7c76-4f9a-bc63-ef75b328cf4c" alt="" width="563"><figcaption><p>The form displayed when inscribing.</p></figcaption></figure>

## Inscription Destination

The inscription destination is the address that GeneratOrd will send the inscriptions to. Any Bitcoin address will be accepted, but you should ensure that the address can send and receive inscriptions. By default, all inscriptions created will be send to the same address, but if you want to inscribe each item in your collection to a different address, you can select [Send to Many](#send-to-many) (Send to Many is only available if you are inscribing your collection. e.g. if inscribing traits only, it is not available).

{% hint style="danger" %}
**Make sure any addresses you provide GeneratOrd are correct and can receive and send inscriptions.**&#x20;

**GeneratOrd takes no responsibility for lost inscriptions due to an incorrect destination address.**
{% endhint %}

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F2v83JjPLoHw9ctTcufy8%2Finscription%20destination.png?alt=media&amp;token=f56120d2-25c1-4341-b1a2-8634de62cc79" alt="" width="563"><figcaption><p>The inscription destination is the ordinals address your inscriptions will be sent to.</p></figcaption></figure>

If you want to send the inscriptions to your connected wallet, you can simply press **Send to Connected Wallet** to auto fill your ordinals address.

### Send To Many

If you do not want all inscriptions to go to the same address, you can select the **Send To Many** option. This is very useful to Airdrop to a list of addresses you have previously collected.

When **Send To Many** is selected, two fields will appear as seen below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FNyN7OHnvx1YhDoNGyLSi%2Fsend%20to%20many.png?alt=media&amp;token=03959591-ac5f-4584-bd0d-697cd017e9fe" alt="" width="563"><figcaption><p>When sending to many, you need to fill two fields. The first is the list of address to send the collection to, one address per line. The second is the treasury address, which receives all of the supporting inscriptions.</p></figcaption></figure>

In the first field, simply enter in the list of addresses you want to send your collection to. Each address must be on a separate line, and there must be nothing except the address (i.e. no punctuation such as comma's). You will need as many addresses as there are items in your collection. e.g. If your collection size is 999, you must enter exactly 999 addresses.

The order of the addresses determines which item is sent to which address. The address on the first line will get Token ID 1, the second line will get Token ID 2 and so on. So, if it is important which person receives which item, make sure the addresses are in the right order.

{% hint style="info" %}
It may be useful to collate your addresses in Excel, Google Sheets, or a text editor with line numbers, so you can easily see which addresses correspond to which token ID's. You can copy directly from Excel/Google Sheets to GeneratOrd and the addresses will be formatted correctly.
{% endhint %}

The second field is the **Treasury Address**. Ideally this is an address you own, and it will receive all the the inscriptions that are required to make the recursion work. This includes:

* The images of your traits (if inscribing traits through GeneratOrd)
* The Javascript Config file
* The collection Metadata

## Fee Rate

{% hint style="warning" %}
Selecting the correct fee rate can be difficult, so if you are not sure, **we highly recommend to use the default fee rate** that GeneratOrd recommends.

Selecting a fee rate that is too low can result in transactions taking a very long time to confirm, and in some cases can lead to them ***never confirming***.

If your transactions are stuck in the mempool due to a low fee rate, we cannot do anything resolve this for you.
{% endhint %}

{% hint style="info" %}
Fee rates fluctuate a lot and are largely unpredictable. The advice below is guidance only, and will not be correct in every situation. You should only edit the recommended fee rate if you have a good understanding of Bitcoin fees, transaction priority and the mempool.
{% endhint %}

The fee rate determines how much you spend in network fees, and also determines the priority of your transactions in the Bitcoin mempool. Selecting the right fee rate is critical, since if it is too low your transactions will have a low priority, and will take a long time to confirm. Conversely, you can save a significant amount by using a low fee rate, since the network fee you pay is proportional to the fee rate.

You can edit the fee rate by clicking the **Edit** button next to the fee rate.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fc7YUM6JXKmoRGBg5pWAs%2Ffee%20rate%20edit.png?alt=media&amp;token=d4610b5e-4b59-4f18-88c9-14be68bee513" alt="" width="563"><figcaption><p>Click <strong>Edit</strong> next to the fee rate to edit the fee rate.</p></figcaption></figure>

When you click edit, a dialog will pop up giving you three options for the fee rate that are suggested based on the current network fees.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F2f5PsClEzmCvqYybW1Cd%2Ffee%20rate%20dialog.png?alt=media&amp;token=9fd5fc89-0026-4735-9d8a-a0b0e3f09fe6" alt="" width="563"><figcaption><p>Dialog shown when editing fee rate.</p></figcaption></figure>

Bitcoin fees and confirmation times are unpredictable, so it is difficult to know how long a transaction will take to confirm, but very approximately, the three fee rates correspond to:

* **Low:** Typically confirms in around one hour.
* **Normal:** Typically confirms in the next block (roughly 10 mins). However, if the fee rates spike it may take longer.
* **High:** Also typically confirms in the next block (roughly 10 mins). However, if the fees spike, it will be quicker than if you choose **Normal**. Use high if it is important for your transactions to confirm in the next block, or you suspect fees rates may spike.
* **Custom:** If you are not happy with the suggested fee rates, you can set the fee rate to anything you like using a custom fee rate.

### When to Inscribe

Saving Bitcoin on fees is more about timing, than it is about selecting the correct fee rate. Fee rates fluctuate wildly, so inscribing at the wrong time can result in you overpaying enormously (you could pay 10x or more than you need to by inscribing at the wrong time). The best strategy to saving Bitcoin is to have everything ready to inscribe very early, and then watch fee rates and inscribe when they are low. [mempool.space](https://mempool.space/) is a fantastic place to monitor fee rates. It has loads of useful information you can use to analyse fee rates to estimate when is the best time to inscribe. Here are some useful pages within [mempool.space](https://mempool.space/) you should checkout to understand fee rates better:

* [Home Page](https://mempool.space/): This shows you recently confirmed blocks, which gives an indication of what fee rates have been mined recently. It also shows you the fee rates currently in the mempool, to give you an idea of the transactions you are competing against. The **Incoming Transactions** graph is also useful as it indicates if the incoming transactions are more, or less than what the Bitcoin network can handle.
* [FAQ](https://mempool.space/docs/faq): There is heaps of useful information in the FAQ section which explains both Bitcoin and fee rates in general, as well as how to interpret the information shown on [mempool.space](https://mempool.space/).
* [Mempool Graph](https://mempool.space/graphs/mempool#24h): The mempool graph shows historical information about the amount of data in the mempool at different fee rates. You can use it to get an idea of current trends (i.e. is the size of the mempool growing or shrinking). It is also very useful to see how much data is in the mempool at different fee rates, which can give you an idea of how quickly fee rates will fall as the mempool clears.

## Padding

{% hint style="info" %}
Padding typically doesn't need to be edited. It has no impact on the collection so it is fine to leave it on the default value if you are not sure.
{% endhint %}

The padding is the number of sats that is stored with each inscription. Padding is sometimes called Postage. The more sats you include in padding, the more expensive it is, but the actual value of the padding is largely irrelevant, so it is typically best to leave padding at the default of 546 sats (the minimum value supported by GeneratOrd).

Padding can be edited the same way as you edit the fee rate. Simply click the edit button next to the fee rate.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FuNZDJnkTZ6sZfvsxyoYB%2Fedit%20padding.png?alt=media&amp;token=01b8fd1d-3167-49a1-8a74-6b9b26c0886e" alt="" width="563"><figcaption><p>Click the <strong>Edit</strong> button next to the padding to edit the padding.</p></figcaption></figure>

This will open the following dialog.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2F25uNQW0eJlSlKaGyM14U%2Fedit%20padding%20dialog.png?alt=media&amp;token=ff768bc9-cbae-4047-98a9-72a8db7d93db" alt="" width="563"><figcaption><p>The dialog shown when editing padding.</p></figcaption></figure>

10,000 sats is provided as the standard padding size, as this is what ord uses by default. ord uses a large padding to so that inscriptions can be sent and transferred without adding extra fees (the fees can be taken of the padding). This is useful if you are storing inscriptions in a wallet that does not natively support inscriptions, but these days it is largely unnecessary because most people keep inscriptions in wallets that support ordinals and automatically add fees when transferring inscriptions.

Because of this, it is more common to use a smaller padding sizes to reduce the cost of inscription, and the smallest you can use with GeneratOrd is 546 sats.

## Discount Codes

If you have a discount code, you can apply it by clicking **Add Discount Code**. Discount codes are single use, but they apply to all transactions made for the collection they are applied to. So, if you create a collection, and then inscribe your traits, pay for download, then inscribe the collection, then the same discount will apply to all 3 transactions. Simply apply the code the first time you make a payment, then the discount will automatically be applied to all subsequent payments for the same collection.

## Understanding Costs

The costs of inscribing is shown at the bottom of the inscribing form, and is split into several categories. All costs are reported in sats (100 million sats = 1 Bitcoin) and US dollars.

* **Padding**: This is the cost due to the [padding](#when-to-inscribe), which is the sats that are attached to each inscription. It is equal to your padding (typically 546 sats) multiplied by the number of inscriptions.
* **Service Fee**: The fee sent to GeneratOrd for use of the platform.
* **Network Fee**: The transaction fees associated with the Bitcoin transactions created by GeneratOrd. This fee is sent to Bitcoin miners and is proportional to the fee rate, and the total size (in kb) of all the files you are inscribing.

The total cost is shown at the bottom. This may differ slightly from the actual amount paid, so it is important to verify the cost you pay in your wallet, as the value shown in the wallet is the actual amount paid.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FwtV5ZIhIQRv1fpY0i2bf%2Finscribing%20costs.png?alt=media&amp;token=fa199f87-0a39-485b-820a-f7e1d372e268" alt="" width="563"><figcaption><p>Costs are shown at the bottom of the inscribing form, and are split into Padding, Service Fee and Network Fee.</p></figcaption></figure>

If you want more details about the breakdown of the costs, you can click on the **Detailed Costs** button, which will open the dialog shown below. Each category (Padding, Service Fee and Network Fee) is broken down into subcategories indicating where the costs are coming from. Depending on what you are inscribing/paying for, you may see different items from the screenshot below. You can also toggle between showing the costs in sats and USD, by clicking the checkbox in the top right of the dialog.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FEJZIWcHdBvhtPTUSVsxE%2Fdetailed%20costs.png?alt=media&amp;token=ae889954-4524-4c35-97a0-8bcd3c41cee3" alt="" width="563"><figcaption><p>Detailed Costs Dialog.</p></figcaption></figure>


# Submitting to a Marketplace

{% hint style="info" %}
This section is only applicable if you have inscribed your collection with GeneratOrd.

If you haven't, GeneratOrd does not know the inscription ID's of your collection, and so cannot provide provide you with the required files. However, you will still be able to download a marketplace metadata JSON template file. This file contains everything you need to create the metadata JSON file for marketplaces, except the inscription ID's. You will need to populate this file with the inscription ID's of your collection. Please [contact us](/contact-us) if you are not sure how to do this.
{% endhint %}

Once you have inscribed your collection, you will probably want to submit it to Ordinals Marketplaces so they can be viewed and traded. To do this, go to the **Inscriptions** tab and click the **Marketplace Submission** button.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FA9W0X6yY0QuUh9um383j%2Fmarketplace%20submission.png?alt=media&amp;token=693fd9c9-7a55-48ed-9062-cb5701cb78be" alt=""><figcaption><p>Click <strong>Marketplace Submission</strong> in the <strong>Inscriptions</strong> tab to get the required files to submit to ordinals marketplaces.</p></figcaption></figure>

This will open the following dialog, where you can edit the name template.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2FiEpcIyXMIAEvKF1nNpuI%2Fmarketplace%20submission%20dialog.png?alt=media&amp;token=875f334c-54f7-4909-97c5-bac1953bbc3c" alt="" width="563"><figcaption><p>Dialog shown when downloading files for marketplace submission. You can edit the <strong>Name Template</strong> to change how the items are named.</p></figcaption></figure>

The **Name Template** is used to generate the name of each item in your collection, and is displayed on Ordinals marketplaces. The template requires you to put `{{id}}` where you want the token id of the item to be.

For example, if your name template was `Ordinal Fomoji #{{id}}`, then the name of each item would be

* Ordinal Fomoji #1
* Ordinal Fomoji #2
* Ordinal Fomoji #3
* etc.

After you click download, you will get a zip containing 3 files:

* `metadata.json`: This file contains all the inscription ID's, names, and attributes of each item in your collection, and is in the correct format to be submitted to the major Ordinals Marketplaces.
* `ids.txt`: This is a text file that contains all the inscription ids, each on a separate line. You will need this to submit to Gamma.
* `ids.csv`: This file is a csv file (i.e. a spreadsheet for Excel/Google Sheets/Apple Numbers) and contains the token ID and inscription ID of each item in your collection. This isn't needed for marketplace submissions, however it is provided to you so you have a list of all your inscription ID's in a format that is easy to use.

## Submitting to each Marketplace

{% hint style="info" %}
Trying to submit to a marketplace not listed here? Let us know so we can help by [contacting us](/contact-us)
{% endhint %}

### Magic Eden

To submit you collection to Magic Eden, go here: [https://creators.magiceden.io](https://creators.magiceden.io/dashboard), and click the **Create New Collection** button.

Then fill in the form with all the relevant details about your collection.&#x20;

When you get to the **Hash List** section, you will need to provide your **Ordinals Inscriptions List** in a JSON format. This is provided in the `metadata.json` file, so open this up and copy the entire contents into the Magic Eden form.

### Gamma

You can submit your collection to Gamma here: <https://gamma.io/ordinals/new-collection>. You will need to provide a list of inscription ID's, which you can get by copying the entire contents of the `ids.txt` file.

Unfortunately, submitting via this link does not allow you to set creator royalty fees, and does not allow you to submit additional metadata such as item names and traits.

In order to submit with all this information, you will need to email <support@gamma.io> directly. Make sure to include both the `metadata.json` and `ids.txt` files in the email. Details about what to include can be found here:&#x20;

<https://support.gamma.io/hc/en-us/articles/17629997644051-How-can-I-request-a-collection-page-for-my-existing-Ordinals->


# FAQ

### It costs a lot to inscribe my traits. How can I make it cheaper?

Inscribing the traits is one of the most expensive parts about making a recursive collection, but there are a few techniques you can use to reduce the cost.

The cost of inscribing your traits depends on the file size of the images. Smaller file size results in lower cost. This is a linear relationship, meaning if you halve the file size of your traits, the cost to inscribe will be halved as well.&#x20;

We recommend you convert all your images to WEBP's, as this typically has significantly smaller file sizes than both JPEG's and PNG's. Also, try to reduce the resolution of the image, and the quality of the compression as low as you can while still retaining acceptable image quality. It is a trade of between image quality and cost, so you need to decide how much quality your willing to sacrifice to lower the cost of inscribing.

If you are yet to create your artwork, and the style of you artwork lends itself well to it, it may be a good idea to use vector graphics for your artwork and inscribe your images as SVG files. SVG images don't store the image as pixels like other image formats, instead it stores the lines and curves that make up the image. If you've already created your artwork, converting to SVG's likely won't reduce the file size, but if you design your artwork to use vector graphics it can result in significantly smaller file sizes than other image formats. For more details about what SVG's are and how to create them, checkout this [article](https://www.elegantthemes.com/blog/wordpress/what-is-an-svg-file-and-how-do-you-use-it).

### Why is the preview not displaying anything?

GeneratOrd has previews for banner creators, Ditto, and for Generative Collections. They all work a similar way, so if it is not displaying anything, it may be because:

* You are on the Xverse Mobile app. Unfortunately, there is a bug with the Xverse mobile app that can prevent previews from displaying properly. If you are encountering this, we recommend double checking the preview works on a desktop if possible.
* One of your inscription ID's is wrong. If you have even a single inscription ID wrong, the entire preview will not work, so it is important to double check they are correct.
* The inscription is not an image. GeneratOrd only works if this inscription is an image with one of the following file types: WEBP, JPEG, PNG, APNG, AVIF, GIF or SVG. If you are unsure what file type one of your inscriptions is you can check on [ordinals.com](https://ordinals.com) by checking the **content type** property.

### I have inscribed a collection, but want to create another collection with the same traits. How do I do this without paying to inscribe my traits again?

If you want to reuse some or all of the traits in another collection, then you can do this easily, provided the traits are already inscribed. To do this, navigate to the collection with the inscribed traits, and in the **Traits Tab**, click **More Actions > Download Inscription ID's**. The **More Actions** menu can be found to the right of the trait type, the button with the 3 dots (**⋮**) as highlighted below.

<figure><img src="https://458341126-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrOSnB5vqx0dRfYYD0nUg%2Fuploads%2Fq2NrYO0NhkrEq1iNIqI1%2Fdownload%20inscription%20ids.png?alt=media&amp;token=2123580e-77cc-48aa-b93b-14ac512c23e1" alt=""><figcaption><p>You can download the inscription ID's of all your traits by clicking <strong>More Actions > Download Inscription ID's</strong> within the <strong>Traits Tab.</strong></p></figcaption></figure>

This will give you a JSON file containing all of the inscription ID's of your traits.

Next, navigate to your new collection, and upload this file by following the instructions described [here](/generative-pfp-collection/preparing-your-traits#upload-ids-in-a-json-file).

### Can I inscribe with rare/exotic sats?

No, GeneratOrd does not support inscribing with rare or exotic sats. It uses the sats you pay with to inscribe, but there is no way to choose which sats it uses.

However, you can download the files that GeneratOrd creates and, inscribe them yourself, or inscribe them with a service that offers special sats.&#x20;

To learn about how to do this read this section of our docs: [Inscribing Yourself](/inscribing#inscribing-yourself).


# Planned Features

{% hint style="info" %}
These are features that we plan to add at some time, but we provide no guarantees about when or even if these will be implemented
{% endhint %}

{% hint style="info" %}
Got an idea for a new feature? We'd love to hear about it! You can let us know by [contacting us](/contact-us)
{% endhint %}

### Image Optimisation

Inscribing images can be expensive, so it is a good idea to always make sure they are as small as possible. If you have a lot of traits, it can be a pain to optimise and compress them all. We plan to add options to automatically compress and optimise images. This will involve converting to WEBP, downsizing and reducing quality. The user will be in control of these settings, so they can choose what level of quality they are willing to sacrifice.

### Custom Renderer

The GeneratOrd standard allows custom [renderers](/readme/how-does-generatord-work#default-renderer) to be created and used. This allows for dynamic inscriptions (such as Fomojis 2.0, whose background changes based on the time of day), or even non image inscriptions, such as audio, gif, or plain graphics rendered through JavaScript. Custom renderers can already be added manually, bit we also intend to allow this to be created and tested through the GeneratOrd website.

### Delayed Reveal

The GeneratOrd standard also allows for delayed reveal collections. This works by encrypting the [metadata](/readme/how-does-generatord-work#metadata), and not inscribing the encryption key until the collection is ready to be revealed. Before the encryption key is inscribed, the trait information in the metadata is inaccessible, so the fallback image is displayed (through the [fallback renderer](/readme/how-does-generatord-work#fallback-renderer)). After the encryption key is inscribed, the processor is able to extract the trait information and render the images normally (using the [default renderer](/readme/how-does-generatord-work#default-renderer)). The inscription ID for the encryption key needs to be included in the [config](/readme/how-does-generatord-work#config) file, meaning the inscription ID needs to be known when the config file is inscribed (i.e. prior to inscribing the key). This is very difficult to do unless you have a good understanding of how ordinals and bitcoin transaction work. However, GeneratOrd will handle all of this for you, and make it super simple to make a delayed reveal collection.

### Trait Aliases

Once implemented, you will be able to set an alias for each of your traits. A traits alias is the name used for it on market places. This has several uses, for example, you could have multiple different traits with the same alias, and they would appear as the same trait on market places.

### Unique Traits

This would allow you to mark a trait as Unique, meaning it generates on its own (i.e. it's the only trait in the image), and it will only generate a set number of times (by default 1). These are also often called 1 of 1 items.

### Trait Rules

This is the ability to add rules to your traits which restrict which traits they can be used with. For example, you would be able to create a rule saying that Trait A cannot appear with Trait B, or a rule stating that Trait C can only appear with Trait D.

### Trait Groups

This would allow you to organise your traits into groups, each with different rarities, layer ordering and trait rules. For example, you might create Male and Female groups, each with different traits rarities and rules.


# Contact Us

We would love to hear from you!

You can email us at <admin@generatord.io>

For updates about GeneratOrd, you can follow us on X: [@generatord\_](https://twitter.com/generatord_)

You can also join the Fomojis Discord and open a ticket: <https://discord.gg/fomojis>


