Drafting NFTs

Creating a pre-minted NFT project

Start by creating a draft NFT project within your designated folder. All tokens within a project will inherit the blockchain being used:

POST /v1/folders/{id}/projects

  "name": "Awesome Animal Collection",
  "description": "A collection of Awesome Animal NFTs",
  "blockchain": "ethereum", //ethereum, polygon, solana
  "contractId": "0xE2Be41F9264d4588270BF8D964a68828419c0b1B" //optional

Tokens and Property types

NFTs have information associated with each token that can be set via our APIs. These properties have 4 types with specific schemas listed below.

"stringValue": "string", //ex. red
"traitTypeKey": "string", //ex. color
"type": "property"
"numericTraitType": "string", //[number,
boostNumber, boostPercentage, maxValue]
"numericTraitValue" : number, //ex. 100
"traitTypeKey": "string", //ex. eventsAttended
"type": "numericTrait"
"type": "dateTrait",
"traitTypeKey": "string", //ex. birthDate
"dateTrait": {
"year": number, //ex. 1985
"month": number, //ex. 10
"day": number, //ex. 25
"dayOfWeek": "string" //ex. [monday, tuesday,
wednesday, thursday, friday, saturday, sunday]
"rankingFrom": number, //ex. 1
"rankingTo": number, //ex. 10
"traitTypeKey": "string", //ex. ranking
"type": "ranking"

You can now start creating draft tokens inside of the project you just created. Set the tokens metadata and media files:

POST /api/open/v1/projects/{id}/tokens

2  "name": "New token for project",
3  "description": "Description of token",
4  "createdByAuthor": "Federico",
5  "royaltyWalletAddress": "0x5AaeD7Bc0d5B41a5318285Cf0E7F5653B33B8DD1",
6  "royaltyPercentage": 12,
7  "tokenProperties": [
8    {
9      "traitTypeKey": "Color",
10      "type": "property",
11      "stringValue": "Red",
12    }
13  ],
14  "tokenFiles": [
15    {
16      "name": "main-image",
17      "extension": "PNG",
18      "blobFileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
19      "size": 14457,
20      "type": "main"
21    },
22    {
23      "name": "cover-art",
24      "extension": "JPG",
25      "blobFileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
26      "size": 21555,
27      "type": "coverArt"
28    }
29  ],
30  "tokenUnlockableContent": {
31    "privateMessage": "Private message for unlockable content",
32    "tokenUnlockableContentFiles": [
33      {
34        "name": "file-name",
35        "extension": "PNG",
36        "blobFileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
37        "size": 1298,
38        "title": "File title",


Editing NFT information

Remember, NFT metadata (besides private metadata) cannot be changed once the token has been minted.

Draft NFT tokens can be updated pre-mint. You can do so using:
PUT /v1/tokens/{id} to edit fields accordingly.

Changing metadata of individual tokens within a project (pre-mint)

You might be looking to change the metadata for specific tokens in your project. A common use case might see each token with its own unique content and metadata. Below we'll review the steps for getting this setup.

PUT /v1/tokens/{id}

  "tokenProperties": [
      "type": "property",
      "traitTypeKey": "Color",
      "stringValue": "Red
      "type": "property",
      "traitTypeKey": "dateTrait",
      "dateTrait": {....

This will override the properties set for the specific token specified