此網頁僅供信息參考之用。部分服務和功能可能在您所在的司法轄區不可用。

What is ERC-721?

ERC-721 is a set of interface standards used on Ethereum to track individually numbered tokens. Tokens of this kind are usually called non-fungible tokens (NFTs): every number within the same contract can be identified and transferred separately, unlike a fungible token where a balance accumulates by amount and only the number of units matters.

ERC stands for Ethereum Request for Comments, the category for Ethereum's application-layer standards and conventions; 721 is this proposal's number. The standard lets wallets and applications know how to query who currently holds a given number, how to transfer it, and how to authorize other addresses to act on a holder's behalf.

How an individual number identifies a token

Every ERC-721 contract can manage many token numbers, that is, tokenId values. A number only has meaning inside that contract, so identifying a token on the same network requires using both the contract address and the number; checking across networks also requires the network name.

For example, token number 7 in contract A and token number 7 in contract B are not the same object. Even if two tokens display the same name or image, their onchain records remain independent as long as the contract addresses differ.

A number itself also guarantees nothing about rarity, authenticity or value. A developer can use sequential numbering, random numbering or another allocation method; the standard only requires that a specific number be distinguishable, and it does not explain the commercial meaning behind a number.

How holding records are queried

ERC-721 offers two queries that are easy to confuse:

  • ownerOf queries which address a given number currently belongs to;
  • balanceOf queries how many of that contract's tokens an address holds.

The balance here is a count of tokens, not a sum of numbers, and it does not mean those tokens are equal in value. To know which specific numbers an address holds, the basic balanceOf is not enough; an application can read history and current state to build an index, or use an optional enumeration feature a contract separately provides.

What gets transferred is a specified number

When transferring an ERC-721 token, the operation must state the sending address, the receiving address and the specific number. On success, the contract updates that number's holder and emits a Transfer event, letting wallets, block explorers and data services recognize the change.

ERC-721 specifies both an ordinary transfer and a safe transfer. transferFrom moves a specified number directly to the target address; when the target is a contract, safeTransferFrom additionally checks whether that contract confirms, as agreed, that it can receive ERC-721 tokens. Without a correct confirmation, a safe transfer fails, which reduces cases where a token gets stuck after being moved into a contract unable to handle it.

A "safe transfer" only checks whether a receiving contract supports this receiving flow. It does not judge whether the receiving address belongs to the intended person, and it does not verify a token's content, a transaction price or the trustworthiness of an external project.

Approving a single number versus approving everything

A holder can let another address or application operate tokens on their behalf, but ERC-721 splits approval into two scopes.

approve designates an address permitted to operate one specific number; getApproved queries that number's current individual approval. Once the number is transferred, this individual approval is cleared.

setApprovalForAll instead hands all of a holder's tokens in that contract to an operating party; isApprovedForAll is used to query this blanket approval. It does not merely approve the numbers currently held — it may also affect tokens of the same contract acquired later, until the approval is revoked.

When the approval for a single number changes, the contract emits an Approval event; when a blanket approval changes, it emits an ApprovalForAll event. Wallets and data services can update their records accordingly, but the actual approval is still determined by the contract's current state.

A blanket approval does not transfer tokens away immediately, but the approved party gains a very wide scope of operation. Users need to check the approved address and the contract address; merely disconnecting a wallet from a website usually does not revoke an approval already written onchain.

Metadata connects a number to descriptive information

The basic holding and transfer interfaces handle only numbers and addresses. ERC-721's optional metadata extension can supply a token name, a ticker, and a tokenURI that returns the location of descriptive information.

That location may point to onchain data, or to a file on a website or in distributed storage. The file usually then contains a name, a description and an image address. Whether a wallet can display the image depends on whether it supports the relevant format, and on the link and file remaining accessible.

So an NFT existing onchain does not mean the image itself is necessarily stored onchain. Metadata may also be updated by a server, or become unreadable because a link stops working. Judging whether content can persist long term requires looking at the specific storage method and at whether the contract allows the location to be changed.

How the standard lets applications recognize an interface

ERC-721 requires a contract to support an interface recognition mechanism. An application can ask a contract whether it declares support for a particular set of functions, then decide whether it can interact with it in the ERC-721 way.

ERC-165, another Ethereum interface standard, specifies this mechanism; its role is comparable to letting a contract answer "which interfaces do I support". It can help an application choose how to call, but it only reflects the contract's declaration and implementation — it cannot prove that token content is genuine or that code is free of defects.

Metadata and enumeration are optional extensions. A contract can support basic ERC-721 transfers yet provide no name, image link or complete list of numbers. A wallet should not treat an optional feature as a capability every ERC-721 contract necessarily has.

Differences from the fungible token standard

ERC-20 mainly records how many units each address owns; a transfer states an amount. ERC-721 mainly records which address each number belongs to; a transfer states a specific number.

Holding 3 ERC-721 tokens therefore only indicates 3 numbers; it does not mean the three are interchangeable or equal in value. By contrast, equal amounts of the same ERC-20 token are usually interchangeable as the contract keeps account of them, with no need to track each number separately.

Both kinds of standard can provide transfers and approvals, but their parameters and approval scopes differ. An application cannot use ERC-20 amount logic to handle ERC-721 numbers simply because function names look similar.

The standard does not prove offchain rights

What ERC-721 records are the numbers, holders and approval relationships within a contract. It does not by itself confirm who created a given image, and it does not automatically grant copyright, ticket admission, ownership of a physical object or other offchain rights.

A project can use a number to associate a collectible, a game item, a membership credential or another object, but whether that association is effective also depends on the issuance arrangements, usage rules, content provenance and applicable law. A change of onchain holder only proves that contract state changed; on its own it cannot prove that an offchain institution will recognize the same outcome.

Standard compatibility does not mean identical behaviour

A specific contract can add minting, destruction, pausing, lists, royalty indications, upgrades or other rules beyond the basic interfaces. ERC-721 does not uniformly specify how a token is first created, whether supply has an upper limit, or how a trading platform must charge fees, and it does not guarantee that every application will follow additional information.

When integrating or using a specific token, check the network, contract address, number, approval scope, metadata storage and administrative permissions. "ERC-721" is only a shared interface, not a certification of an issuer's identity, content authenticity, rarity or market value.

FAQ

Does every NFT use this standard?

No. Other networks have their own token models, and other NFT standards or custom interfaces also exist on Ethereum. You first have to confirm the network and which standard the specific contract supports.

Can a contract create only one NFT?

No. The same ERC-721 contract can manage many individual numbers, each recording its holder and approval state separately.

Does the same number mean the same NFT?

No. A number is unique only within a specific contract. The network, contract address and number all have to be checked together.

Can a safe transfer prevent sending to the wrong person?

No. A safe transfer mainly checks whether a receiving contract can accept ERC-721 tokens as agreed; it does not judge whether an address belongs to the intended recipient.

Not necessarily. ERC-721 does not specify copyright or other offchain licensing. Which usage rights a holder obtains requires reading the project's terms, its licence and applicable law.

Continue with token standard, crypto token, ERC-20 and smart contract, or return to the Crypto Glossary.

Sources

免責聲明
本文章可能包含不適用於您所在地區的產品相關內容。本文僅致力於提供一般性信息,不對其中的任何事實錯誤或遺漏負責任。本文僅代表作者個人觀點,不代表 OKX 的觀點。 本文無意提供以下任何建議,包括但不限於:(i) 投資建議或投資推薦;(ii) 購買、出售或持有數字資產的要約或招攬;或 (iii) 財務、會計、法律或稅務建議。 持有的數字資產 (包括穩定幣) 涉及高風險,可能會大幅波動,甚至變得毫無價值。您應根據自己的財務狀況仔細考慮交易或持有數字資產是否適合您。有關您具體情況的問題,請諮詢您的法律/稅務/投資專業人士。本文中出現的信息 (包括市場數據和統計信息,如果有) 僅供一般參考之用。儘管我們在準備這些數據和圖表時已採取了所有合理的謹慎措施,但對於此處表達的任何事實錯誤或遺漏,我們不承擔任何責任。 © 2026 OKX。本文可以全文複製或分發,也可以使用本文 100 字或更少的摘錄,前提是此類使用是非商業性的。整篇文章的任何複製或分發亦必須突出說明:“本文版權所有 © 2026 OKX,經許可使用。”允許的摘錄必須引用文章名稱並包含出處,例如“文章名稱,[作者姓名 (如適用)],© 2026 OKX”。部分內容可能由人工智能 (AI) 工具生成或輔助生成。不允許對本文進行衍生作品或其他用途。

相關推薦

查看更多
crypto-glossary-cover-v5.contentful

Crypto Glossary A–Z

Explore key crypto, blockchain, and trading terms through concise definitions, organized alphabetically for quick reference. [A](#a) · [B](#b) · [C](#c) · [D](#d) · [E](#e) · [F](#f) · [G](#g) · [H](#
2026年10月30日
what-is-blockchain

What is a blockchain?

A blockchain is a digital record book maintained by multiple participants. New records are organized into blocks, and the blocks are connected in order. Computers participating in the blockchain netwo
2026年10月29日
Crypto adoption generic thumbnail

What is DeFi?

Decentralized finance (DeFi) is a class of application that provides financial functions such as asset swapping and lending mainly through blockchains and smart contracts. A smart contract is a progra
2026年10月29日
decentralized-exchange-dex

What is a DEX?

A decentralized exchange (DEX) is a class of trading system that lets users swap digital assets through blockchain protocols or smart contracts. A smart contract is a program deployed on a blockchain
2026年10月29日
thumbnail:dao

What is a DAO?

A decentralized autonomous organization (DAO) is a way of organizing in which several people make decisions, manage funds or maintain a project together under rules agreed in advance. It often records
2026年10月29日
Ethereum Upgrade

What is EIP-7702?

EIP-7702 is a core protocol proposal that changes what Ethereum accounts can do. EIP stands for Ethereum Improvement Proposal, and 7702 is the proposal number. It lets an externally owned account dele
2025年6月18日
查看更多