Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@sologenic
Created July 14, 2022 18:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sologenic/9f07f09c5d00efb2764583bfcc47dc6a to your computer and use it in GitHub Desktop.
Save sologenic/9f07f09c5d00efb2764583bfcc47dc6a to your computer and use it in GitHub Desktop.

Metadata Standard

Introduction

Sologenic NFT Marketplace supports metadata that is structured according to the official EIP-721 or the EIP-1155 suggestions with some Sologenic extension on top.

NOTE: XLS-14d NFTs had another metadata structure which was not compatible with any known standard and also included some unnecessary data there. The decision was made to change metadata structure on XLS-20d integration to make it compatible with existing standards.

Here is an example of metadata:

Structure

{
  "name": "Money Minded Ape #597",
  "description": "Money Minded Apes is a collection of tiny little apes living on the XRPL. As their name suggests, these bad boys are all about the Mula! Most of them have made a fortune in crypto, and a few are still waiting for their favorite coin to moon. Some are low-key, and others are flashy and like to show off.\n\nVisit [www.moneymindedapes.com](https://www.moneymindedapes.com) for more information.",
  "external_url": "https://www.moneymindedapes.com/",
  "image_url": "ipfs://ipfs/bafybeiccskgxs5vz53b7nlzpmodcfkazbisvi4rqyyjw5ltqjlrx4rsaq4/data.png",
  "animation_url": "ipfs://ipfs/bafybeiccskgxs5vz53b7nlzpmodcfkazbisvi4rqyyjw5ltqjlrx4rsaq4/animation.mpga",
  "attributes": [
    //  ...
  ],
  "category": "art",
  "md5hash": "1137abd3ab77bc6626fdcde65ee64156",
  "is_explicit": false,
  "content_type": "image/jpeg"
}
  • name - name of the NFT
  • description - a human-readable or Markdown formatted description of the NFT
  • external_url - external Web resource URL which allows to see the NFT on your site
  • image_url - IPFS URL of the NFT image (other storage support might be added later). Currently supported types are: png, jpg, jpeg, svg, gif.
  • animation_url - present for non image NFTs only a URL to a multi-media attachment for the item. The file extensions GLTF, GLB, WEBM, MP4, M4V, OGV, and OGG are supported, along with the audio-only extensions MP3, WAV, and OGA
  • attributes - attributes for the NFT which are shown on NFT page in prettified format. More details about attributes see below.
  • category* - the category where NFT will be put
  • md5hash* - MD5 hash of the NFT content
  • is_explicit* - defines if any of NFT content contains explicit content
  • content_type* - type of content stored in animation_url if provided otherwise in image_url

Attributes market with * are Sologenic extension on top of EIP-721 & EIP-1155

Attributes

Attributes are used to present NFT traits to give more details about it and improve search.

{
  // ...
  "attributes": [
    {
      "value": "Happy"
    },
    {
      "trait_type": "Fur",
      "value": "Pink"
    },
    {
      "trait_type": "Power",
      "value": 87.2
    },
    {
      "trait_type": "Generation",
      "value": 3,
      "display_type": "number"
    },
    {
      "trait_type": "Level",
      "value": 120,
      "max_value": 200
    }
  ]
  // ...
}
  • value - is the value of the trait. Currently, only strings & numbers values are supported.
  • trait_type - is the name of the trait. If you don't want to have a trait_type for a particular trait, you can include just a value in the trait and it will be set as a generic attribute.
  • display_type - is a field indicating how you would like a value to be displayed (supported only for numeric values for now).
  • max_value - sets a ceiling for a numerical trait's possible values. If you set a max_value, make sure not to pass in a higher value.

Display Types

The list of supported display types (to be extended in the future):

  • number - shows numeric trait as number instead of a progress bar which is shown by default (when no display_type specified).
  • date - shows numeric trait as human-readable data (e.g. Thursday, June 2nd, 2022). Expects underlying value to be a unix timestamp (e.g. 1651672029)
  • boost_number - shows value as boost represented as number
  • boost_percentage - shows value as boost represented in percentage

References

@bigcjat
Copy link

bigcjat commented Jul 17, 2022

I would like to suggest that all meta standards include a field for identifying the standard so that app developers can properly filter the data. Could you add "Meta_standard: solo20" to your metadata? It would be much simpler than trying to filter by something unique in each structure. Thanks you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment