{
      "tool_id": "art-209-nft-metadata-validator",
      "tool_version": "1.0.0",
      "display_name": "NFT Metadata Validator",
      "mcp_name": "validate_nft_metadata_art209",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-209-nft-metadata-validator.html",
      "description": "Validates ERC-721/ERC-1155 and OpenSea NFT metadata JSON against required fields (name, description, image), recommended fields (external_url, animation_url, attributes), attribute entry structure, and license field presence. Schema check only; no on-chain calls. Not legal advice.",
      "input_schema_ref": "chaingraph/art-209-nft-metadata-validator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f44568d42f15c3115cd7fa67045fb18872ae4cc0ba789b6bede70f9448176a1b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I5alFkBC7hec8r/W9ty2NdR8V47Pq0+dDqzJeiSz4jEv4YlxK/r1i/MscXARqOsKDsCn7A8KTzwwmibQz8lakAnKQ0FBo2aAexQBPGp+gtYzwiQIeA7oeADzdV9C7trcJyJHLU+K6hR9GjDdjXRbdBvOhCqV/u4iLB01pMKyKYIQbuDp9Ate9f94KCbtiTdX3VPU1mz8A0D/50VVxkCaYSWYKvMYOQ7NKopzZv83/I14e4n82kbioeiu23C8X7a3G42m1Vhn1qlaWa99Tud3F3yvMQ3+Q2hOMfuJUB2D5iUBRPq2Iqhfg5l4QzjtUQopw5zkPgT3zs+QG7aT67LPAw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:87972c28cc06505e0cac65a400724692a0ed5c42149e0beeae70c09629308792",
          "output": {
            "all_pass": true,
            "checks": [
              {
                "detail": "Present: \"Cosmic Horizon #42\"",
                "field": "name",
                "group": "required",
                "label": "name (string, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present (21 chars)",
                "field": "description",
                "group": "required",
                "label": "description (string, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: ipfs://QmTestHash1234/image.png",
                "field": "image",
                "group": "required",
                "label": "image (URI, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: https://cosmichorizon.example.com/token/42",
                "field": "external_url",
                "group": "recommended",
                "label": "external_url (URL, recommended)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Not present (optional). Include for audio, video, or interactive content.",
                "field": "animation_url",
                "group": "recommended",
                "label": "animation_url (URL, optional)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: 1 attribute(s)",
                "field": "attributes",
                "group": "recommended",
                "label": "attributes (array, recommended)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "All 1 attribute entries have trait_type and value",
                "field": "attributes[].structure",
                "group": "recommended",
                "label": "attributes entry structure (trait_type + value)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "license field present: \"CC BY 4.0\"",
                "field": "license",
                "group": "license",
                "label": "License field presence",
                "pass": true,
                "warn": false
              }
            ],
            "disclaimer": "Not legal advice. Schema check only; no on-chain calls. Marketplace acceptance may vary. Consult a licensed attorney for rights and license matters.",
            "fail_count": 0,
            "field_count": 6,
            "required_pass": true,
            "valid": true,
            "warn_count": 0
          }
        }
      }
    }
