Sunday, October 18, 2026
Learn / NFTs and Web3

What is ERC-721?

ERC-721 is the Ethereum token standard for NFTs. Each token has its own ID, so every one is unique, unlike interchangeable ERC-20 tokens.

NFTs and Web3 Illustration: Cryptoweek

ERC-721 is the Ethereum standard for non-fungible tokens, or NFTs. It sets out a shared list of functions and events that an NFT contract must have, so any wallet, marketplace or app can read and move tokens from any collection the same way. It was proposed in January 2018 by William Entriken, Dieter Shirley, Jacob Evans and Nastassia Sachs.

What does ERC-721 stand for?

ERC means Ethereum Request for Comments, the process for proposing shared rules for apps built on Ethereum. 721 is simply the number the proposal was given. The formal document is EIP-721, and its status is final, meaning the rules are fixed.

The authors chose the term "NFT" after considering others such as "distinguishable asset", "title" and "ticket". The standard says the name was picked because nearly everyone they asked found it acceptable and it covers a wide range of unique digital items.

What is an ERC-721 token?

An ERC-721 token is an entry in a smart contract that links one token ID to one owner. The ID is a large number that, under the standard, must never change for the life of the contract. Two tokens from the same collection can have very different value because of rarity, age or appearance.

ethereum.org lists uses such as collectibles, access keys, lottery tickets and numbered seats at events. Projects it names include CryptoKitties, ENS, POAP and Bored Ape Yacht Club. For the general picture of minting and metadata, see how do NFTs work.

What does the ERC-721 standard require?

Every compliant contract must offer these functions:

  • balanceOf and ownerOf report how many tokens an address holds and who owns a given token ID.
  • transferFrom and safeTransferFrom move a token. The safe version checks that a receiving contract is built to handle NFTs, so tokens are less likely to get stuck.
  • approve and getApproved let an owner allow one address to move one specific token.
  • setApprovalForAll and isApprovedForAll let an owner hand an operator, such as a marketplace, control over every token in that collection.

Contracts must also emit Transfer, Approval and ApprovalForAll events, which is how explorers track NFT movements. Optional extensions add a name, a symbol and a tokenURI that points to a file describing each token, plus functions to list every token in a collection.

Approval for all is powerful because it covers a whole collection at once. It is the kind of broad permission described in crypto phishing and wallet drainers, so it is worth reading what a wallet prompt asks for.

What is the difference between ERC-20 and ERC-721?

An ERC-20 token is fungible. Every unit is the same as every other, balances are just amounts, and tokens can be divided into decimal places. OpenZeppelin notes that ERC-721 has no decimals setting, because a unique token cannot be split.

The approval rules differ too. ERC-20 lets a holder approve a spending amount, while ERC-721 approves a specific token or a whole collection. A newer standard, ERC-1155, lets one contract hold both kinds of token at once.

This guide explains how things work. It is not financial, legal or tax advice. Last updated .