ERC-721
ERC-721 é um padrão para representar tokens não fungíveis (NFTs) na blockchain Ethereum, definindo como ativos digitais únicos são criados, gerenciados e negociados.
ERC-721 é um padrão crucial dentro do ecossistema Ethereum, fornecendo um modelo para NFTs. Ele permite a criação de ativos digitais únicos, cada um com seu próprio identificador distinto, armazenado na blockchain. Este padrão especifica as funções e eventos que um contrato NFT deve implementar, como transferFrom, balanceOf e ownerOf, permitindo a interoperabilidade entre diferentes projetos e mercados de NFT.
Ao contrário dos tokens ERC-20, que são fungíveis (intercambiáveis), os tokens ERC-721 são não fungíveis, o que significa que cada token é único e tem seu próprio valor ou atributos específicos. Essa singularidade é o que torna os NFTs adequados para representar itens como arte digital, colecionáveis, imóveis virtuais e itens dentro do jogo. O padrão ERC-721 garante que esses ativos possam ser comprovadamente de propriedade e transferidos na blockchain Ethereum.
graph LR
Center["ERC-721"]:::main
Pre_erc_20["erc-20"]:::pre --> Center
click Pre_erc_20 "/terms/erc-20"
Pre_smart_contract["smart-contract"]:::pre --> Center
click Pre_smart_contract "/terms/smart-contract"
Center --> Child_nft["nft"]:::child
click Child_nft "/terms/nft"
Center --> Child_metadata["metadata"]:::child
click Child_metadata "/terms/metadata"
Center --> Child_soulbound_token["soulbound-token"]:::child
click Child_soulbound_token "/terms/soulbound-token"
Rel_erc_1155["erc-1155"]:::related -.-> Center
click Rel_erc_1155 "/terms/erc-1155"
Rel_ipfs["ipfs"]:::related -.-> Center
click Rel_ipfs "/terms/ipfs"
Rel_erc_20["erc-20"]:::related -.-> Center
click Rel_erc_20 "/terms/erc-20"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Teste de conhecimento
🧒 Explique como se eu tivesse 5 anos
Imagine ERC-721 as a digital certificate of ownership for unique items, like a one-of-a-kind [trading](/pt/terms/trading) card or a specific piece of digital art. Each card or artwork has its own special number, and the [blockchain](/pt/terms/blockchain) keeps track of who owns which specific item.
🤓 Expert Deep Dive
ERC-721 (EIP-207) establishes a standard for non-fungible tokens, enabling the representation of unique digital assets on Ethereum. Its core innovation lies in the tokenId mechanism, which allows for granular tracking and ownership of individual assets within a single smart contract. The ownerOf function provides direct retrieval of an asset's proprietor, while transferFrom and the more secure safeTransferFrom facilitate provenance tracking. The safeTransferFrom function incorporates checks to ensure the receiving address is capable of handling ERC-721 tokens, typically by verifying adherence to the ERC-721 or ERC-1155 standards via onERC721Received callbacks. This prevents tokens from being sent to incompatible contracts, thereby avoiding 'black holes'. The approve and isApprovedForAll functions enable delegated management, crucial for marketplaces and secondary sale mechanisms. Architectural trade-offs include increased gas costs per token compared to ERC-20 due to the need to store and manage individual tokenId ownership mappings. Furthermore, the immutability of tokenId assignments means that once a token is minted, its identifier cannot be changed, necessitating careful planning during contract deployment.