{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "nft-metadata",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/nft-metadata/",
  "collection": "ethereum",
  "title": "NFT metadata: where the name, image and attributes live",
  "description": "Separate an NFT’s on-chain ownership record from its metadata and media, including optional tokenURI interfaces and mutable hosting dependencies.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:12:41.505Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "NFT metadata describes a token, often through a URI returned by an optional metadata interface. The token’s ownership record and the referenced name, attributes or media are different things. Owning an NFT does not by itself guarantee that external content remains available, unchanged or accompanied by copyright ownership.",
    "claimId": "nft-metadata-quick-answer",
    "sourceIds": [
      "eip721"
    ]
  },
  "keyFacts": [
    {
      "label": "Optional interface",
      "value": "ERC-721 defines an optional metadata extension with name, symbol and tokenURI.",
      "sourceIds": [
        "eip721"
      ],
      "id": "optional-interface",
      "claimId": "nft-metadata-fact-optional-interface"
    },
    {
      "label": "Reference",
      "value": "tokenURI can point to a JSON resource describing the token.",
      "sourceIds": [
        "eip721"
      ],
      "id": "reference",
      "claimId": "nft-metadata-fact-reference"
    },
    {
      "label": "Separation",
      "value": "The token identifier and owner are distinct from the metadata resource.",
      "sourceIds": [
        "eip721"
      ],
      "id": "separation",
      "claimId": "nft-metadata-fact-separation"
    }
  ],
  "prerequisites": [
    "erc-721-nfts"
  ],
  "sections": [
    {
      "id": "layers",
      "heading": "Follow the reference chain",
      "sourceIds": [
        "eip721"
      ],
      "paragraphs": [
        "A collection contract identifies a token and its owner. A metadata URI can lead to a JSON document, whose image field can lead to another resource. Each step can have different storage and availability properties.",
        "A media preview in a wallet is the result of resolving those references. It is not necessarily the image bytes stored in the token contract."
      ]
    },
    {
      "id": "change",
      "heading": "Determine who can alter what is displayed",
      "sourceIds": [
        "eip721",
        "oz-proxy"
      ],
      "paragraphs": [
        "An implementation can construct or update metadata references under its own rules. A hosting operator may control a referenced server, while an upgrade authority may control future contract logic.",
        "Check whether the URI and underlying content are fixed, content-addressed or administratively mutable. A unique token ID alone does not answer these questions."
      ]
    },
    {
      "id": "rights",
      "heading": "Ownership of the token has a limited technical meaning",
      "sourceIds": [
        "eip721"
      ],
      "paragraphs": [
        "The ERC-721 interface defines token ownership and transfer behavior. It does not itself convey a universal license to reproduce the associated artwork or create a legal ownership registry.",
        "Any content license or other rights need separate evidence from the relevant issuer or rights holder. Read those terms independently from the on-chain owner field."
      ]
    }
  ],
  "faq": [
    {
      "question": "If an NFT is on-chain, must its image also be on-chain?",
      "answer": "No. The token can have an on-chain ownership record while its metadata or media is referenced elsewhere. Inspect the actual URI and storage arrangement.",
      "sourceIds": [
        "eip721"
      ]
    }
  ],
  "claims": [
    {
      "id": "nft-metadata-quick-answer",
      "articleSlug": "nft-metadata",
      "statement": "NFT metadata describes a token, often through a URI returned by an optional metadata interface. The token’s ownership record and the referenced name, attributes or media are different things. Owning an NFT does not by itself guarantee that external content remains available, unchanged or accompanied by copyright ownership.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "Specification: ERC721Metadata; Metadata Choices (metadata extension); NFT Identifiers"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked ERC-721 owner/token ID interface, optional metadata extension, tokenURI JSON schema/image URI and explicit URI mutability in Metadata Choices.",
          "Contract ownership is distinguished from external media availability and legal rights. The statement is a limit of the technical interface, not a jurisdiction-specific legal conclusion. Proxy authority is sourced separately."
        ]
      }
    },
    {
      "id": "nft-metadata-fact-optional-interface",
      "articleSlug": "nft-metadata",
      "statement": "Optional interface: ERC-721 defines an optional metadata extension with name, symbol and tokenURI.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "Specification: ERC721Metadata; Metadata Choices (metadata extension); NFT Identifiers"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked ERC-721 owner/token ID interface, optional metadata extension, tokenURI JSON schema/image URI and explicit URI mutability in Metadata Choices.",
          "Contract ownership is distinguished from external media availability and legal rights. The statement is a limit of the technical interface, not a jurisdiction-specific legal conclusion. Proxy authority is sourced separately."
        ]
      }
    },
    {
      "id": "nft-metadata-fact-reference",
      "articleSlug": "nft-metadata",
      "statement": "Reference: tokenURI can point to a JSON resource describing the token.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "Specification: ERC721Metadata; Metadata Choices (metadata extension); NFT Identifiers"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked ERC-721 owner/token ID interface, optional metadata extension, tokenURI JSON schema/image URI and explicit URI mutability in Metadata Choices.",
          "Contract ownership is distinguished from external media availability and legal rights. The statement is a limit of the technical interface, not a jurisdiction-specific legal conclusion. Proxy authority is sourced separately."
        ]
      }
    },
    {
      "id": "nft-metadata-fact-separation",
      "articleSlug": "nft-metadata",
      "statement": "Separation: The token identifier and owner are distinct from the metadata resource.",
      "sourceIds": [
        "source-b08b9aae11ea4085"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b08b9aae11ea4085",
          "locator": "Specification: ERC721Metadata; Metadata Choices (metadata extension); NFT Identifiers"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:12:41.505Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked ERC-721 owner/token ID interface, optional metadata extension, tokenURI JSON schema/image URI and explicit URI mutability in Metadata Choices.",
          "Contract ownership is distinguished from external media availability and legal rights. The statement is a limit of the technical interface, not a jurisdiction-specific legal conclusion. Proxy authority is sourced separately."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip721",
      "label": "Non-Fungible Token Standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-721",
      "locator": "Specification: ERC721Metadata; Metadata Choices (metadata extension); NFT Identifiers",
      "note": "Optional token metadata interfaces and the distinction between token and external resource.",
      "version": "EIP/ERC-721; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.309Z",
      "contentSha256": "bedd672103f3ebb6803ce2bddb33a9ff3d23b08e8e3ae3173b6a5b016f65e2a1",
      "recordId": "source-b08b9aae11ea4085"
    },
    {
      "id": "oz-proxy",
      "label": "Proxy contracts",
      "publisher": "OpenZeppelin",
      "url": "https://docs.openzeppelin.com/contracts/5.x/api/proxy",
      "locator": "TransparentUpgradeableProxy; UUPSUpgradeable; ERC1967Proxy",
      "note": "Proxy implementation slots, delegated execution and upgrade authority.",
      "version": "OpenZeppelin Contracts 5.x",
      "checkedAt": "2026-10-02T17:03:43.024Z",
      "contentSha256": "58fe40b9eaa6d3cf92e48caed2d8db247a790b1a3055948095a48c7f8eb77854",
      "recordId": "source-16bb921e662a5173"
    }
  ],
  "related": {
    "articles": [
      "erc-721-nfts",
      "smart-contract-events",
      "soulbound-tokens",
      "nft-ipfs-storage"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “NFT metadata: where the name, image and attributes live.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/nft-metadata/"
}
