This page was created by collaboration with [Vasa](https://twitter.com/vasa_develop) and [Iain](https://twitter.com/isiain)
**For Metadata Overview, I suggest you to check out [Deep dive into NFT Metadata](https://medium.com/@anettrolikova/deep-dive-into-nft-metadata-99fe36aeef24)**
# Metadata definition:
Metadata describes just attributes of the NFT, usually visual attributes like trait type - like colour of pants or similar. Usually:
- name
- description
- image (should ideally point to ipfs/arweave links, traits)
For better understanding look at Meebit metadata snippet:
``{
"name": "Meebit #12347",
"description": "Meebit #12347",
"image": "http://meebits.larvalabs.com/meebitimages/characterimage?index\u003d12347\u0026type\u003dfull\u0026imageType\u003djpg",
"attributes": [
{
"trait_type": "Type",
"value": "Human"
},
{
"trait_type": "Hair Style",
"value": "Ponytail"
},
{
"trait_type": "Hair Color",
"value": "Dark"
},
{
"trait_type": "Glasses",
"value": "Aviators"
},
{
"trait_type": "Shirt",
"value": "Tube Top"
},
{
"trait_type": "Shirt Color",
"value": "Green"
},
{
"trait_type": "Pants",
"value": "Leggings"
},
{
"trait_type": "Pants Color",
"value": "Blue Camo"
},
{
"trait_type": "Shoes",
"value": "Canvas"
},
{
"trait_type": "Shoes Color",
"value": "Gray"
}
]
}`
tokenURI may point to JSON file that conforms to the ERC721 Metadata JSON Schema
## How we should describe token metadata?
The idea is to create metadata standard or find solution to:
- simple describe token metadata
- easy to parse even for non developer community like artists
What’s the situation with metadata now?
- no video support (extremely problematic to upload video)
- no link to "platform" - people have to find tokenURI (works with ERC-721), decode link via [JSON parser](https://jsonformatter.org/json-parser) and decode the picture / file this way
# ERC1155 JSON Format
Stores:
- name
- decimals
- description
- image
- properties
- localization
Supporting only image files (images)
# ERC721 Metadata
ERC721 defines metadata as tokenURI which is referring to IPFS (or other storage provider service) URL (link).
Which is an option but we can do better, unfortunately there is no better solution for how to describe metadata.
In [[ERC721]] metadata extension is OPTIONAL
Metadata and their functions outcome example:
name() returns string => "1000x CubeArt"
symbol() returns string => "CUBART"
tokenURI(tokenId) returns string => "ipfs://SHA"
# ERC2477 Token Metadata Integrity
Defines schema which should be used for describing metadata.
ERC2477 was created aiming to describe metadata better but it was really just about adding schema like https://schema.org/VisualArtwork to the metadata itself which is describing metadata in more readeable way but not sure if that's the road we would like to get onto.
This ERC is most likely not going to be used, you can read more about this ERC in [[ERC2477 Token Metadata Integrity]]
# OpenSea metadata standard
The most people default using OpenSea implementation of metadata.
This standard have a few additional fields like:
- animation_url
- original_url
OpenSea metadata standard: https://docs.opensea.io/docs/metadata-standards
# The problem:
Just to name a few problems that Ethereum is facing with Infrastructure andd mainly metadata.
We need:
- More accessible metadata not only IPFS/ Arweave/ centralized server link
- Support for video formats of NFTs (now nearly impossible to have video as NFT)
- Better cross platform interoperability - marketplaces have custom metadata solutions for displaying files
We had discussion about NFT Metadata, notes are in [HackMD](https://hackmd.io/@Bnkhqf0tSbi1lX2Xc-WXYQ/ByxXJK-JK)
# Further reading
Another page [[Interactive NFTs & Standardising metadata]]
Metadata definition: https://en.wikipedia.org/wiki/Metadata
Slides from Iain (Zora): https://gateway.pinata.cloud/ipfs/QmYm88NA5exdF23D5oWien2p95abiwPp6o7vB89NJXaj1i/Metadata%20Draft%20Slides%20v1.pdf
[[ERC2477 Token Metadata Integrity]]
Meebits metadata contract: https://meebits.larvalabs.com/meebit/12347
Meebits contract: https://etherscan.io/address/0x7bd29408f11d2bfc23c34f18275bbf23bb716bc7#code
Meebit itself: https://meebits.larvalabs.com/meebits/detail?index=1247
OpenSea metadata standard: https://docs.opensea.io/docs/metadata-standards
JSON parser: https://jsonformatter.org/json-parser
ERC-721: https://www.nftstandards.wtf/Standards/ERC721+Non+Fungible+Standard
ERC-1155: https://www.nftstandards.wtf/Standards/ERC1155+Multi+token
Zora Metadata formats: https://docs.zora.co/docs/developer-tools/zdk/metadata
Zora metadata media schemas: https://github.com/ourzora/media-metadata-schemas
Metadata schemas intro: https://nftschool.dev/reference/metadata-schemas/#intro-to-json-schemas
Structural improvements to ERC-1155 metadata https://writing.gonze.com/34203/structural-improvements-to-erc-1155-metadata