ERC-721 is the standard that defines non-fungible tokens on Ethereum. Where an ERC-20 token is interchangeable β one USDC is the same as any other USDC β an ERC-721 token is unique. Each one has its own ID, its own owner, and can carry metadata that distinguishes it from every other token in the same contract. One CryptoPunk is not the same as another CryptoPunk, and the standard is what enables that difference to be tracked on-chain.
The standard was proposed in January 2018 by Dieter Shirley, William Entriken, Jacob Evans and Nastassia Sachs, inspired by CryptoKitties (which had actually launched a few months earlier using a proto-version of the same idea). CryptoKitties broke Ethereum in December 2017 β congestion from cat breeding transactions brought the whole network to a crawl β and the standard that emerged from that chaos is the one that underpins every subsequent NFT project.
What ERC-721 Actually Defines
At the technical level it is quite minimal. The contract tracks which address owns which token ID, supports transfers and approvals the same way ERC-20 does, and exposes a tokenURI function that points to a metadata file (usually on IPFS, sometimes hosted on a regular server). That metadata file contains whatever description of the token the project wants to include β typically an image URL, a name, a list of traits. The standard does not say anything about what the token represents. It just says how ownership is tracked.
This is both the strength and the weakness of the standard. The strength is that an NFT can represent literally anything: a JPEG, a song, a real estate deed, an event ticket, a game item, a domain name. The weakness is that almost all of the “content” of an NFT lives off-chain in a metadata file, and if that file disappears or changes, the on-chain token points to nothing. Projects that care about permanence pin their metadata to IPFS or Arweave and accept the cost; projects that do not, do not, and you end up with NFTs whose images have rotted away.
What Replaced and Extended It
ERC-1155 is a newer standard that lets a single contract hold both fungible and non-fungible tokens and is more gas-efficient for projects that mint large quantities at once. A lot of games and multi-edition NFT projects use it instead of ERC-721. For the classic “one unique token per owner” use case, ERC-721 is still dominant.
There are also extensions for royalty enforcement (EIP-2981), dynamic NFTs (tokens that change state in response to on-chain events), and soulbound tokens (non-transferable NFTs used for credentials and reputation). None of these have displaced the core standard; they are layers added on top for specific use cases.
If an NFT project does not specify otherwise, assume it is ERC-721. The standard is thirteen years old in internet time and it still does most of the work.