LOCAL REVIEW EDITION · 19 SEPTEMBER 2026Research scope & limitations ↗

Inherited archive entry · retained from the earlier edition. Its factual, legal and policy claims have not all been reverified for 19 September 2026. Research scope.

A standard for telling one token from another

EIP-721 was created on 24 January 2018 by William Entriken, Dieter Shirley, Jacob Evans and Nastassia Sachs, and later reached final status. The standard distinguishes itself from fungible interfaces directly: 'each asset is distinct (non-fungible) whereas each of a quantity of tokens is identical (fungible).' Its core guarantee is an owner mapping: an ownerOf function returns the address holding a given tokenId, and the standard states that the pair of contract address and tokenId forms 'a globally unique and fully-qualified identifier for a specific asset on an Ethereum chain.'

What ownership, in this narrow sense, means

Owning an ERC-721 token means controlling the private key that can call transferFrom or approve on that specific tokenId, nothing more and nothing less. The standard specifies transfer, approval and a Transfer event, mirroring the pattern the earlier ERC-20 standard set for fungible balances, adapted here to unique identifiers instead of interchangeable amounts. An optional metadata extension adds a tokenURI function, which the standard says 'returns a distinct Uniform Resource Identifier... for a given asset,' typically pointing to a JSON file describing a name, a description and an image. The standard requires that this URI exist as a pointer; it does not require anything about what the pointer resolves to.

The gap between the identifier and the asset

This is the load-bearing distinction the standard leaves open: tokenId and ownerOf are enforced by the Ethereum network itself, verifiable by any node running the chain. tokenURI is a string the contract's deployer chose to store, and by default nothing in EIP-721 constrains what that string points to, how long it stays reachable, or whether its contents can be changed after the token was sold. A buyer acquires a cryptographically enforced claim to an identifier; whatever that identifier is supposed to represent is a separate, and separately checkable, claim, one the ethereum.org documentation itself does not resolve.

  • Does the contract's tokenURI point to content that is itself content-addressed, or to a mutable location the deployer or a third party can change?
  • Is the uniqueness being marketed the tokenId's uniqueness, guaranteed on-chain, or the uniqueness of the artwork it references, which the standard does not guarantee?
  • Who controls the server or storage location the tokenURI resolves to, and what happens to that pointer if they stop maintaining it?

ERC-721 solved a real problem: giving each of many similar-looking tokens a distinct, network-verified owner. It solved nothing about what those tokens point to, which is precisely the question a metadata extension raises without answering.

Sources & reading trail

EIP-721: Non-Fungible Token Standard ↗

Specifies the ownerOf, transferFrom and approve functions, the uniqueness guarantee of contract address plus tokenId, and the optional tokenURI metadata extension.

Source published: 24 January 2018 · Retrieved: 16 September 2026

ERC-721 NFT Standard ↗

Describes, as retrieved 16 September 2026, how ownerOf and tokenId work in practice and that the token's associated media is referenced rather than stored by the core standard.

Source published: Not established · Retrieved: 16 September 2026

EIP-20: Token Standard ↗

Provides the earlier fungible-token interface that ERC-721 explicitly contrasts itself against to define non-fungibility.

Source published: 19 November 2015 · Retrieved: 16 September 2026

Historical sources establish the record; the questions and interpretation are Block Due Diligence’s editorial analysis. This retrospective draft does not imply the site published on the event date.