# README

### WAX NFT Metadata Standards

```Javascript
// -- Stats -- \\
Version: 1.0.1
Supported Types: Image, Photo, Literature, Music, Video
Published: standards.cXc.world
```

#### Mint professional-looking NFTs

The WAX NFT metadata standards are a collection of fields to use when creating your schema on Atomic Assets. We provide copy-paste, plug-and-play schemas that work with the most popular markets on WAX, starting with [Atomichub](https://wax.atomichub.io/), [NFThive](https://nfthive.io/), [WAXdao](https://waxdao.io/) and more.

### Let's GOO!!! 🚀

Take the [Tutorial to start your collection](https://standards.cxc.world/tutorial)

#### ⚡️ Use the new UI to easily create your schema [tools.cXc.world](https://tools.cXc.world)

Find each standard below

|         Use Case        | Link                                                                                      |
| :---------------------: | ----------------------------------------------------------------------------------------- |
|        Literature       | [media/literature.md](https://standards.cxc.world/media/literature)                       |
|          Video          | [media/video.md](https://standards.cxc.world/media/video)                                 |
|          Image          | [media/image.md](https://standards.cxc.world/media/image)                                 |
|          Photo          | [media/photo.md](https://standards.cxc.world/media/photo)                                 |
|          Music          | [media/music.md](https://standards.cxc.world/media/music)                                 |
| Original Music Standard | [currentxchange/Music-NFT-Standard](https://github.com/currentxchange/Music-NFT-Standard) |

### About the Standards

Each standard uses these basic fields, and expands to a type-specific list of fields.

The individual standards are linked farther down, and exist in the [standards.cxc.world/media](https://standards.cxc.world/media) directory.

`string` just means text, `ipfs` is an [ipfs hash](https://www.pinata.cloud/) of the data.

|     Field     |  Type  | Description                                                                                                                                                                                                                 |
| :-----------: | :----: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|      name     | string | NFT name                                                                                                                                                                                                                    |
|      img      |  ipfs  | Primary image, because this is an IPFS field, you can use a video here as well, under 7mb weight recommended                                                                                                                |
|     artist    | string | The artist, for multiple creators see the credits field                                                                                                                                                                     |
|     title     | string | The title of the work                                                                                                                                                                                                       |
|     about     | string | Description field with main info about the work                                                                                                                                                                             |
|    backimg    |  ipfs  | Back of the art/book, or used as supplementary artwork                                                                                                                                                                      |
| collectionimg |  ipfs  | Extra image for Collection, optional                                                                                                                                                                                        |
|      <hr>     |  <hr>  | <hr>                                                                                                                                                                                                                        |
|     genre     | string | Genre of the work                                                                                                                                                                                                           |
|      mood     | string | Mood of the work                                                                                                                                                                                                            |
|     format    | string | Main medium and/or format of the work. This may be used to declare a type/category like "short story" for literature                                                                                                        |
|      <hr>     |  <hr>  | <hr>                                                                                                                                                                                                                        |
|    credits    | string | List creator credits, suggested format "Script: Gudasol, Director: Pixy the Unicorn"                                                                                                                                        |
|      link     | string | A link or links where the work can be purchased or interacted with. You can link to multiple platforms for purchase, playback, etc. Suggested format "Platformone: link.to/platformone \| Platformtwo: link.to/platformtwo" |
|     promo     |  ipfs  | Promotional video or photo related to work or project                                                                                                                                                                       |
|    license    | string | Declare license (Copyright \[Year], CC0, MIT, etc)                                                                                                                                                                          |
|     labels    | string | Topics related to the NFT as a comma-separated list                                                                                                                                                                         |
|     rarity    | string | How scarce is this NFT? Abundant Common Uncommon Rare Epic Mythic Unique                                                                                                                                                    |

### Web 4 Options

Web4 adds **space** and **time** information on top of web3. You'll find timespace + light options for each available for each standard:

#### Full timespace options

|   Field   |  Type  | Description                                                                                                                                                                                                                                                               |
| :-------: | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| timestamp |  int64 | Timestamp for the publication of the work (simplifies + supercedes date)                                                                                                                                                                                                  |
|    date   | string | Date when the work was published (supercedes / replaces Year/Month/Day) Recommended format is ISO 8601 "YYYY-MM-DD" because "MM-DD-YYYY" can be confused with "DD/MM/YYYY" but it's up to you. To cover all bases, set timestamp field as a backup, or use year/month/day |
|    year   |  int64 | Year when the work was published. Format: "YYYY". ⚠️ It's best to use either date or year/month/day, not both.                                                                                                                                                            |
|   month   | string | Month when the work was published. Format: "MM" or English abbreviation (e.g., "Jan", "Feb", etc.) or full month name                                                                                                                                                     |
|    day    |  int64 | Day when the work was published. Format: "DD" or "D"                                                                                                                                                                                                                      |
|    <hr>   |  <hr>  | <hr>                                                                                                                                                                                                                                                                      |
|  location | string | Full location information in one field, format: "City, State, Nation" ⚠️ Use this or nation/state/city, not both                                                                                                                                                          |
|   nation  | string | Three-letter ISO country code (e.g., "USA", "BRA", "AUS", etc.) Please don't use anything else, as this is the easiest format for any application to integrate                                                                                                            |
|   state   | string | State or province for the location, format: Abbreviation convention used in nation (e.g., California as "CA", Antioquia as "ANT")                                                                                                                                         |
|    city   | string | City for the location, format: "City Name"                                                                                                                                                                                                                                |
|   geotag  | string | TopoJSON Point stored as string, format "lat,lng" (e.g., "37.7749,-122.4194"), or a "\[lat,lng]" coordinate array (e.g., "\[37.7749, -122.4194]")                                                                                                                         |

> You may inpmement all options to allow templates of he same schema to choose what's best for them, instead of modifying it and keeping it for future unknown templates.

#### Implementation Options

You'll find code blocks for the various NFT Standards.

You can either copy/paste them, as shown in the [Instructional Video](https://www.youtube.com/watch?v=GXjBQnV_Xm8) or simply create a new schema on [Atomichub.io](https://wax.atomichub.io/) and type in each field you would like to implement.

For **detailed instructions** on how to use, see this [article](https://medium.com/p/5b3f951bff05).

**RAM Usage**

While you may see more fields than you'd like to implement in your final NFT, it's okay to use them for the schema. This will make the [RAM requirement](https://anyobservation.medium.com/basic-wax-account-management-d956d74ff103) of schema creation slightly larger, but you'll only be charged for the fields you use when creating templates + NFTs.

> This metadata is written specifically for Atomic Assets' [NFT standard](https://github.com/pinknetworkx/atomicassets-contract) on the [atomicassets contract](https://wax.bloks.io/account/atomicassets).

Feel free to fork, or open an issue to see improvement.

### 🛠 WAX NFT Metadata Standard

For specific use cases, use these versions: [standards.cxc.world/media](https://standards.cxc.world/media)

|         Use Case        | Link                                                                                      |
| :---------------------: | ----------------------------------------------------------------------------------------- |
|        Literature       | [media/literature.md](https://standards.cxc.world/media/literature)                       |
|          Video          | [media/video.md](https://standards.cxc.world/media/video)                                 |
|          Image          | [media/image.md](https://standards.cxc.world/media/image)                                 |
|          Photo          | [media/photo.md](https://standards.cxc.world/media/photo)                                 |
|          Music          | [media/music.md](https://standards.cxc.world/media/music)                                 |
| Original Music Standard | [currentxchange/Music-NFT-Standard](https://github.com/currentxchange/Music-NFT-Standard) |

> Works with Atomichub UI out of the box. You can even avoid touching this code by using Create Schema on atomichub to replicate.

### Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

### Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

### Mini-Changelog

1.0.0 - Initial Release - October 19, 2023 Added initial media standards released to [standards.cxc.world](https://standards.cxc.world/)

### Support this development

This development is made possible through [WAX Labs](https://labs.wax.io). Support NFT artists by purchasing + trading their NFTs.


# tutorial

### How to Use the WAX NFT Metadata Standards

Using the WAX NFT Metadata Standards to create your own NFT project involves three key steps:

```
1. Set up a collection
2. Add the schema
    a. Copy one of the JSON objects found at [standards.cXc.world/media](https://standards.cXc.world/media)
        Pick the media type
        Pick the version, Light or Spacetime
        Click the copy button at the top-right of the code block 
    b. Paste the code into the `idata`` field using the [createschema](https://waxblock.io/account/atomicassets?action=createschema#contract-actions) action.
3. Create templates for each piece of art you'll mint
*Now, mint as many NFTs as you want..*
```

### 1. Set Up a Collection

First, you need to set up your own collection on AtomicHub. Follow the marketplace’s process for registering a new collection.

For example, on AtomicHub you would:

1. Click “View Profile” after clicking the three lines in top right
2. Click “Collections”
3. Click the “+ Create New Collection” button
4. Fill out details + click “Save” at the bottom.

> See the (aging) [instructions from the Pink, creators of Atomic Assetd](https://pinkgg.medium.com/guide-using-the-atomichub-nft-creator-7bd2b017224b) for more info, and return when you have a collection, as implementing the standard is much faster using the method described here.

### 2. Add the Schema

Once your collection is created, you need to add the one of the NFT standards, which are implemented as schemas (called categories on the new Atomichub site). There are two options:

**\[Recommended] Option 1: Paste the Code on Waxblock.io** — The easier way is to copy the schema code from the [GitHub repo](https://standards.cxc.world/media/) and paste it into the idata field when using the [createschema](https://waxblock.io/account/atomicassets?action=createschema#contract-actions) action on Atomic Assets.

![This is the “easy” way if you’re comfortable sending an action from waxblock.io](https://files.peakd.com/file/peakd-hive/currentxchange/23uQJGQZ6KhzbpjxZ7EgZ4oUaGjG3E6cEox5GnqBZfABBGYGC1yybGisj7eJsZYnYxSnQ.png)

**Option 2: Manually through Atomichub** — You can manually re-create the schema in your collection by adding each field one-by-one through the UI.

1. Go to your new collections page at profile > collections > manage collection
2. Click the “Templates” tab, then click “+ Create New Category”

![This way may seem easier if you’re code-shy, but it takes more time to fill in each field and is easier to make a typo or other mistake](https://files.peakd.com/file/peakd-hive/currentxchange/23tGTdnDbeQRK1hFemKJKNCKHxT7Ln1HDQykKLH4qBUJy4hTYZJ43aTqrGRpKrLyqjQ6A.png)

3. Fill in each field manually

### 3. Create Templates

Use your schema to generate NFT templates in your collection. On AtomicHub, you would:

1. From profile > collections, find your collection and click “Manage collection”
2. Click the “Templates” tab, then click “+ Create New Template”
3. Fill in the fields + click “Save”

#### Once you’ve created a template, you can mint NFTs from it anytime.

Platforms like [Atomichub](https://wax.atomichub.io/) and [Neftyblocks](https://neftyblocks.com/) make it easy to generate templates from your schema + NFTs from your templates without needing to code. Platforms like [cXc.world](https://cXc.world/f/nft) let you compete with other NFT artists, and tools like [waxdao.io](https://waxdao.io/) let you incentivize your NFT holders with token rewards.

![Go the NFTs tab and click “Create new NFT”, Select the category, fill out the fields, hit save](https://files.peakd.com/file/peakd-hive/currentxchange/23uQNzCAu7YbbVZPLvyCba4oApqQYvgdRAGnVTyUD5msw5eHAjm7XP4FFSjPEgw3uviSo.png)

## Visual learner? Here's an [Instructional Video](https://www.youtube.com/watch?v=GXjBQnV_Xm8).


# media

|           Type          | Link                                                                                      |
| :---------------------: | ----------------------------------------------------------------------------------------- |
|        Literature       | [media/literature.md](https://standards.cxc.world/media/literature)                       |
|          Video          | [media/video.md](https://standards.cxc.world/media/video)                                 |
|          Image          | [media/image.md](https://standards.cxc.world/media/image)                                 |
|          Photo          | [media/photo.md](https://standards.cxc.world/media/photo)                                 |
|          Music          | [media/music.md](https://standards.cxc.world/media/music)                                 |
| Original Music Standard | [currentxchange/Music-NFT-Standard](https://github.com/currentxchange/Music-NFT-Standard) |


# image

## Image Media Standard

Use this for any image-focused NFT schema/category that isn't a photograph.

#### ⚡️ Use the new UI to easily create your schema [tools.cxc.world](https://tools.cXc.world)

> 📺 [Watch the Youtube Tutorial](https://www.youtube.com/watch?v=0jLRFa8Ol5Y)

## Additional Fields

|    Field   |  Type  |                                       Description                                       |
| :--------: | :----: | :-------------------------------------------------------------------------------------: |
|  filetype  | string |                                The filetype of the image                                |
|  fullsize  |  ipfs  | Unedited max-resolution image, useful if you want a loadable preview, and the real deal |
| resolution | string |       Width x Height of the largest-version image in pixels e.g. 3840 x 2160 or 4k      |
|    ratio   | string |                           Aspect ratio of the image, e.g. 16:9                          |
| generative |  bool  |   Was AI used to make this image? Give credit to the model/app in the `credits` field   |

### Changed Fields

None of the default fields are changed.

## 🛠 Image NFT Standard

## Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "filetype",
    "type": "string"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "generative",
    "type": "bool"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

## Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "filetype",
    "type": "string"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "generative",
    "type": "bool"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```


# literature

## Literature Media Standard

Use this for any literature-focused NFT schema/category, like a short story, poem, article, or a book you want to publush as a NFT.

#### ⚡️ Use the new UI to easily create your schema [tools.cxc.world](https://tools.cXc.world)

> 📺 [Watch the Youtube Tutorial](https://www.youtube.com/watch?v=eSlmOtpiNaM)

## Additional Fields

|   Field   |  Type  |          Description          |
| :-------: | :----: | :---------------------------: |
|   series  | string |  Series the work is part of.  |
|   pages   |  int64 |  Number of pages in the work. |
|    isbn   | string | ISBN identifier for the work. |
| publisher | string |     Publisher of the work.    |

### Changed Fields

`artist` is called `author` `nsfw` field is absent

|  Field |  Type  |                      Description                     |
| :----: | :----: | :--------------------------------------------------: |
| author | string | The primary author(s) of the work or their pen name. |

## 🛠 Literature NFT Standard

## Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "author", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "series",
    "type": "string"
  },
  {
    "name": "pages",
    "type": "int64"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "isbn",
    "type": "string"
  },
  {
    "name": "publisher",
    "type": "string"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

## Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "author", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "series",
    "type": "string"
  },
  {
    "name": "pages",
    "type": "int64"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "isbn",
    "type": "string"
  },
  {
    "name": "publisher",
    "type": "string"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```


# music

## Music Media Standard

Use this for any image-focused NFT schema/category that isn't a photograph.

#### ⚡️ Use the new UI to easily create your schema [tools.cxc.world](https://tools.cXc.world)

> 📺 [Watch the Youtube Tutorial](https://www.youtube.com/watch?v=ruwx-FeyuWY)

> Note: We have published another [Music NFT standard](https://github.com/currentxchange/Music-NFT-Standard) previous to the media standards. This version is fully compatible with the larger set of media standards published here. To ensure maximum compatibility, we suggest that you use this standard instead of the old standard, but they both work. Please note that there are a few changes in the standard, such as the absence of a promo image field in this version.

## Additional Fields

|    Field   |  Type  |                                   Description                                   |
| :--------: | :----: | :-----------------------------------------------------------------------------: |
|    audio   |  ipfs  |                     The audio file, mp3 recommended for size                    |
|    video   |  ipfs  |                                 Music video file                                |
|    clip    |  ipfs  | Intended to be a short video or 30 second preview common on streaming platforms |
|   youtube  | string |                                   Youtube link                                  |
|   spotify  | string |                                   Spotify link                                  |
| soundcloud | string |                                 Soundcloud link                                 |

> Platform Compatibility: The YouTube field is supported by Atomichub's marketplace, and will be embedded so people can easily watch it. The standard also includes fields for Spotify and SoundCloud, Which is not yet supported by any major marketplace, but may be in the future. If you would rather include other platforms, you can use the `link` field, or as a custom field by changing the name of one of these fields before you incorporate it into your schema.

### Changed Fields

None of the default fields are changed.

## 🛠 Music NFT Standard

## Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {
    "name": "audio", 
    "type": "ipfs"
  },
  {
    "name": "video", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "clip", 
    "type": "ipfs"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "youtube",
    "type": "string"
  },
  {
    "name": "spotify",
    "type": "string"
  },
  {
    "name": "soundcloud",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

## Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {
    "name": "audio", 
    "type": "ipfs"
  },
  {
    "name": "video", 
    "type": "ipfs"
  },
  {          
    "name": "artist", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
    {
    "name": "about",
    "type": "string"
  },
  {
    "name": "clip", 
    "type": "ipfs"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "youtube",
    "type": "string"
  },
  {
    "name": "spotify",
    "type": "string"
  },
  {
    "name": "soundcloud",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```


# photo

## Photo Media Standard

Use this for any photography-focused NFT schema/category.

#### ⚡️ Use the new UI to easily create your schema [tools.cxc.world](https://tools.cXc.world)

> 📺 [Watch the Youtube Tutorial](https://www.youtube.com/watch?v=0jLRFa8Ol5Y)

## Additional Fields

|    Field   |  Type  |                                                    Description                                                    |
| :--------: | :----: | :---------------------------------------------------------------------------------------------------------------: |
|   camera   | string |                                               The camera model used                                               |
|    lens    | string |                                                The lens model used                                                |
|  exposure  | string |                                  The exposure settings, e.g. "1/125 sec at f/5.6"                                 |
|    focal   | number |                                         The focal length of the lens in mm                                        |
|     iso    | number |                                                The ISO setting used                                               |
|  fullsize  |  ipfs  | Unedited RAW file with max resolution image. If not shooting in RAW, provide largest image in uncompressed format |
| resolution | string |                            Width x Height of the photo in pixels e.g. 3840 x 2160 or 4k                           |
|    ratio   | string |                                        Aspect ratio of the photo, e.g. 16:9                                       |

### Changed Fields

`artist` is called `photographer`

|     Field    |  Type  |                                                 Description                                                |
| :----------: | :----: | :--------------------------------------------------------------------------------------------------------: |
| photographer | string | Photographer of the work. Use `credits` field for human models, etc., and the photo standard for AI models |

## 🛠 Photo NFT Standard

## Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "photographer", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "camera",
    "type": "string"
  },
  {
    "name": "lens",
    "type": "string"
  },
  {
    "name": "exposure",
    "type": "string"
  },
  {
    "name": "focal",
    "type": "int64"
  },
  {
    "name": "iso",
    "type": "int64"
  },
  {
    "name": "fullsize",
    "type": "ipfs"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

## Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {          
    "name": "photographer", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "camera",
    "type": "string"
  },
  {
    "name": "lens",
    "type": "string"
  },
  {
    "name": "exposure",
    "type": "string"
  },
  {
    "name": "focal",
    "type": "int64"
  },
  {
    "name": "iso",
    "type": "int64"
  },
  {
    "name": "raw",
    "type": "ipfs"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```


# video

## Video Media Standard

Use this for any video NFT schema/category. This can be for a movie or a youtube video.

#### ⚡️ Use the new UI to easily create your schema [tools.cxc.world](https://tools.cXc.world)

> 📺 [Watch the Youtube Tutorial](https://www.youtube.com/watch?v=0EKb60iGtWE)

## Additional Fields

|    Field   |  Type  |                                     Description                                    |
| :--------: | :----: | :--------------------------------------------------------------------------------: |
|    video   |  ipfs  |                              Video file via IPFS hash                              |
|   youtube  | string |                                    Youtube link                                    |
|  filetype  | string |                             Video format e.g. MP4, MOV                             |
|  duration  | string | Video lengths as "days : hour : minutes : seconds" "2:47" = two minutes 47 seconds |
| resolution | string |            Width x Height of the photo in pixels e.g. 3840 x 2160 or 4k            |
|     fps    |  int64 |                           Frames per second of the video                           |
|    ratio   | string |                        Aspect ratio of the photo, e.g. 16:9                        |

### Changed Fields

`artist` is called `creator`

> Note: In this standard, many marketplaces will always show the img attribute. For this reason, you can choose to include a video in the image field through IPFS, or leave the image field blank, and fill out the video field instead. Both of these options will work on most marketplaces, but some, notably Atomichub, may not allow you to upload a video file to their free image hosting service on IPFS, or may restrict the image file size.

|  Field  |  Type  |                                       Description                                       |
| :-----: | :----: | :-------------------------------------------------------------------------------------: |
| creator | string | Director or channel-owner of the work. Remember to use the `credits` field for multiple |

## 🛠 Video NFT Standard

## Light Version 🌞

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {
    "name": "video", 
    "type": "ipfs"
  },
  {          
    "name": "youtube", 
    "type": "string"
  },
  {          
    "name": "creator", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "filetype",
    "type": "string"
  },
  {
    "name": "duration",
    "type": "string"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "fps",
    "type": "int64"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```

## Spacetime Version 🛸

```javascript
[
  {
    "name": "name",
    "type": "string"
  },
  {
    "name": "img", 
    "type": "ipfs"
  },
  {
    "name": "video", 
    "type": "ipfs"
  },
  {          
    "name": "youtube", 
    "type": "string"
  },
  {          
    "name": "creator", 
    "type": "string"
  },
  {
    "name": "title",
    "type": "string"
  },
  {
    "name": "about",
    "type": "string"
  },
  {
    "name": "filetype",
    "type": "string"
  },
  {
    "name": "duration",
    "type": "string"
  },
  {
    "name": "resolution",
    "type": "string"
  },
  {
    "name": "fps",
    "type": "int64"
  },
  {
    "name": "ratio",
    "type": "string"
  },
  {
    "name": "backimg",
    "type": "ipfs"
  },
  {
    "name": "collectionimg",
    "type": "ipfs"
  },
  {
    "name": "genre",
    "type": "string"
  },
  {
    "name": "mood",
    "type": "string"
  },
  {
    "name": "format",
    "type": "string"
  },
  {
    "name": "credits",
    "type": "string"
  },
  {
    "name": "link",
    "type": "string"
  },
  {
    "name": "promo", 
    "type": "ipfs"
  },
  {
    "name": "timestamp",
    "type": "int64"
  },
  {
    "name": "date",
    "type": "string"
  },
  {
    "name": "year",
    "type": "int64"
  },
    {
    "name": "month",
    "type": "string"
  },
    {
    "name": "day",
    "type": "int64"
  },
  {
    "name": "location",
    "type": "string"
  },
  {
    "name": "nation",
    "type": "string"
  },
  {
    "name": "state",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  },
  {
    "name": "geotag",
    "type": "string"
  },
  {
    "name": "nsfw",
    "type": "bool"
  },
  {
    "name": "labels",
    "type": "string"
  },
  {
    "name": "license",
    "type": "string"
  },
  {
    "name": "rarity",
    "type": "string"
  }
]
```


