NFT Metadata Validator

Validate NFT metadata against OpenSea, ERC-721, and ERC-1155 standards


1. What are NFT Metadata Standards?

NFT metadata standards are specifications that define how non-fungible token information should be structured and stored. These standards, defined by ERC-721 and enhanced by OpenSea, ensure that NFT marketplaces and wallets can properly display and interpret NFT properties, images, and attributes.

2. How does it work?

Validation Process

The validator checks your NFT metadata against ERC-721 and OpenSea standards. It verifies required fields (name, description, image), validates optional fields (attributes, animation_url, external_url), checks URI formats, and assigns a compliance score (0-100%) based on completeness and adherence to best practices.

Required Fields

  • name: The name of the NFT
  • description: A description of the NFT
  • image: URI pointing to the NFT's image (IPFS, HTTP, or data URI)

Optional Fields

  • attributes: Array of traits with trait_type and value
  • animation_url: URI for video/audio/3D content
  • external_url: Link to external website
  • background_color: 6-character hex color (no #)

Validation Scoring

The validator assigns a compliance score (0-100%) based on required fields (60 points), recommended fields (30 points), and best practices (10 points). A score of 80%+ indicates excellent compliance with standards.

3. Examples

BAYC #8650 Metadata

{
  "image": "ipfs://QmRRPWG96cmgTn2JSvhxcaFrNYMGrey5Zbvs34aexxQtime",
  "name": "Bored Ape Yacht Club #8650",
  "description": "The Bored Ape Yacht Club is a collection of 10,000 unique Bored Ape NFTs living on the Ethereum blockchain.",
  "external_url": "https://boredapeyachtclub.com/",
  "attributes": [
    {
      "trait_type": "Background",
      "value": "Blue Gradient"
    },
    {
      "trait_type": "Fur",
      "value": "Black"
    },
    {
      "trait_type": "Eyes",
      "value": "Blue Beams"
    },
    {
      "trait_type": "Mouth",
      "value": "Discomfort"
    },
    {
      "trait_type": "Clothes",
      "value": "Sailor Shirt"
    },
    {
      "trait_type": "Hat",
      "value": "Captain's Hat"
    }
  ]
}

CryptoPunks #5217 Metadata

{
  "image": "ipfs://QmZ2RBCCVvk5C8b9FZ3VX3pMZqrJqF9D8z6qZjxV8G9Y5H",
  "name": "CryptoPunk #5217",
  "description": "10,000 unique collectible characters with proof of ownership stored on the Ethereum blockchain.",
  "external_url": "https://cryptopunks.app/cryptopunks/details/5217",
  "attributes": [
    {
      "trait_type": "Type",
      "value": "Alien"
    },
    {
      "trait_type": "Skin",
      "value": "Green"
    },
    {
      "trait_type": "Accessories",
      "value": "Small Shades, Pipe"
    },
    {
      "trait_type": "Rarity",
      "value": "Alien"
    }
  ]
}

Full Metadata with Animation

{
  "name": "Animated Genesis NFT",
  "description": "An example NFT with animation URL showcasing full metadata compliance.",
  "image": "ipfs://QmYwAPJzwewNHrwmh2XKANcDmNaRKV8wB8nqMMEHeQF6V6",
  "animation_url": "ipfs://QmVVvqKH7MBUmhK8hQv2J6G2FLkJRhDXpMhF4fKF6hQ8Jc",
  "external_url": "https://example.com/nft/1",
  "background_color": "000000",
  "attributes": [
    {
      "trait_type": "Rarity",
      "value": "Legendary",
      "display_type": "string"
    },
    {
      "trait_type": "Power Level",
      "value": 9000,
      "display_type": "number"
    },
    {
      "trait_type": "Created",
      "value": 1672531200,
      "display_type": "date"
    }
  ]
}

References