> For the complete documentation index, see [llms.txt](https://docs.trust.enterprises/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.trust.enterprises/rest-api/nft-ecosystem/create-an-nft-collection.md).

# Create an NFT Collection

{% hint style="warning" %}
Note, that by using these tools for creating NFTs, we will add **5%** to the current royalty structure for secondary sales we will receive.

As a developer or project owner, you may fork our repositories and remove this additional royalty, however, you probably will **not** receive any support from the team and it will make Matt sad...

Our royalty accounts are as follows:

\
Testnet: 0.0.34319163

Mainnet: 0.0.1119570
{% endhint %}

### Overview

There are 3 required fields needed to create an NFT:

* symbol
* collection\_name
* supply

In addition, **royalties of 5.25% are automatically added, these may be turned off.** After all, we don't live in a web2 world anymore. For future secondary sales, you will receive 5% and this tooling treasury will receive **0.25% or 5% of the current royal structure.**

These are the optional fields you can use:

* allow\_custom\_fees (to disable royalties)
* royalty\_account\_id (the account that will receive royalties, defaults to the Treasury API account)
* royalty\_fee (set as 0.05, or 5%, by default)
* fallback\_fee (default set as 0, for simpler internal transfers)
* enable\_unsafe\_keys (**CONSIDERED DANGEROUS:** set the admin, freeze, and wipe keys)

<mark style="color:green;">`POST`</mark> `https://hedera-serverless-consensus.vercel.app/api/nft`

Create an NFT collection

#### Headers

| Name                                        | Type   | Description                                                       |
| ------------------------------------------- | ------ | ----------------------------------------------------------------- |
| x-api-key<mark style="color:red;">\*</mark> | String | The **API\_SECRET\_KEY** from the client's environment variables. |

#### Request Body

| Name                                     | Type    | Description                                                                     |
| ---------------------------------------- | ------- | ------------------------------------------------------------------------------- |
| symbol<mark style="color:red;">\*</mark> |         | Symbol of the NFT collection                                                    |
| name<mark style="color:red;">\*</mark>   | String  | Name of the NFT collection                                                      |
| supply<mark style="color:red;">\*</mark> | Int     | Supply of the NFT collection                                                    |
| allow\_custom\_fees                      | boolean | default true, enable custom/royalty fees                                        |
| royalty\_account\_id                     | String  | Hedera account id to send royalties to                                          |
| royalty\_fee                             | decimal | Royalty percentage as a decimal for secondary sales                             |
| fallback\_fee                            | decimal | HBAR fallback for non-treasury transfers                                        |
| enable\_unsafe\_keys                     | boolean | **Considered Dangerous, if true, stops an NFT collection from being immutable** |

{% tabs %}
{% tab title="200: OK NFT collection created" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="401: Unauthorized Header Auth Missing/invalid" %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Missing params in body" %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}
