====== ERC-721: Standard pro NFT ====== **ERC-721** je standard pro chytré smlouvy na síti Ethereum, který umožňuje vytvářet unikátní digitální aktiva. Zatímco peníze (fiat i krypto) jsou zaměnitelné (fungible), sběratelské předměty, nemovitosti nebo digitální umění jsou nezaměnitelné (non-fungible). ===== 1. Hlavní rozdíl mezi ERC-20 a ERC-721 ===== Abychom pochopili ERC-721, musíme ho porovnat s jeho starším sourozencem: ^ Vlastnost ^ ERC-20 (Zaměnitelný) ^ ERC-721 (Nezaměnitelný) ^ | **Unikátnost** | Ne, všechny tokeny jsou stejné. | **Ano**, každý token má unikátní ID. | | **Dělitelnost** | Ano (např. na 18 desetinných míst). | **Ne**, nelze vlastnit 0.5 NFT (zpravidla). | | **Příklad** | Peníze, Stablecoiny, Palivo. | **Umění, pozemky v metaversu, herní meče.** | --- ===== 2. Klíčové funkce standardu ===== ERC-721 definuje soubor funkcí, které musí [[it:sw:smart_contracts|smart kontrakt]] implementovat, aby s ním mohly spolupracovat peněženky a tržiště (např. OpenSea): * **ownerOf(uint256 tokenId):** Vrátí adresu majitele konkrétního tokenu. * **balanceOf(address owner):** Vrátí celkový počet unikátních tokenů, které daná adresa vlastní. * **safeTransferFrom(address from, address to, uint256 tokenId):** Bezpečně převede vlastnictví tokenu z jedné adresy na druhou (ověřuje, zda příjemce umí NFT přijmout). * **approve(address to, uint256 tokenId):** Povolí jiné adrese (např. burze) manipulovat s jedním konkrétním tokenem. * **getApproved(uint256 tokenId):** Zjistí, kdo má povolení k manipulaci s daným tokenem. --- ===== 3. Metadata a TokenURI ===== Jednou z nejdůležitějších vlastností ERC-721 je funkce **tokenURI(uint256 tokenId)**. Tato funkce vrací odkaz (URL nebo IPFS hash), který vede k JSON souboru s metadaty o tokenu. Protože ukládání dat přímo na blockchainu je drahé, metadata obsahují: * Název a popis předmětu. * Odkaz na vizuální soubor (obrázek/video) uložený v [[it:sw:ipfs|IPFS]]. * Vlastnosti (traits) – např. barva očí u postavičky nebo síla útoku u herního předmětu. --- ===== 4. Rozšíření ERC-721 Metadata & Enumerable ===== Standard ERC-721 lze rozšířit o další užitečné funkce: * **ERC721Metadata:** Umožňuje přidat jméno a symbol (např. "CryptoKitties", "CK"). * **ERC721Enumerable:** Umožňuje snadno procházet seznam všech tokenů, které adresa vlastní, nebo seznam všech existujících tokenů v kontraktu. --- ===== 5. Praktické využití ===== * **Digitální umění:** Průkaz o vlastnictví originálního díla. * **Herní průmysl:** Předměty, které si hráč může přenášet mezi různými hrami. * **Tokenizace reálných aktiv:** Reprezentace vlastnictví nemovitosti nebo fyzického sběratelského auta. * **Vstupenky a certifikáty:** Nepadělatelné lístky na koncerty nebo univerzitní diplomy. --- ===== 6. Limity a nástupci ===== ERC-721 má i své nevýhody, zejména vysoké poplatky (Gas) při ražení (mintování) velkého množství tokenů najednou. To vedlo ke vzniku: * **ERC-1155 (Multi-Token Standard):** Umožňuje spravovat zaměnitelné i nezaměnitelné tokeny v rámci jediné smlouvy, což výrazně šetří náklady na plyn. ---- //Související články:// * [[it:sw:nft_ipfs|NFT a IPFS: Jak se ukládají data]] * [[it:sw:erc20|ERC-20: Standard pro běžné tokeny]] * [[it:sw:solidity_evm|Solidity: Programování NFT kontraktů]] //Tagy: {{tag>it ethereum nft erc-721 smart-contracts crypto standards art}}//