跳至主要內容
Change page

ERC-721 非同質化代幣標準

簡介

什麼是非同質化代幣?

非同質化代幣 (NFT) 用於以獨特的方式識別某物或某人。這種類型的代幣非常適合用於提供收藏品、存取金鑰、彩券、演唱會和體育比賽對號座等的平台。這種特殊類型的代幣具有驚人的潛力,因此它值得擁有一個適當的標準,而 ERC-721 就是為了解決這個問題而誕生的!

什麼是 ERC-721?

ERC-721 引入了 NFT 的標準,換句話說,這種類型的代幣是獨一無二的,並且可以與來自同一個智能合約的另一個代幣具有不同的價值,這可能是由於它的年齡、稀有度,甚至是視覺外觀等其他因素。等等,視覺外觀?

沒錯!所有的 NFT 都有一個名為 tokenIduint256 變數,因此對於任何 ERC-721 合約,contract address, uint256 tokenId 這對組合必須是全域唯一的。也就是說,去中心化應用程式 (dapp) 可以有一個「轉換器」,將 tokenId 作為輸入,並輸出一些酷炫的圖像,例如殭屍、武器、技能或令人驚豔的貓咪!

先決條件

內文

ERC-721(以太坊徵求修正意見書 721)由 William Entriken、Dieter Shirley、Jacob Evans 和 Nastassia Sachs 於 2018 年 1 月提出,是一個非同質化代幣標準,在智能合約中實作了代幣的 API。

它提供了將代幣從一個帳戶轉帳到另一個帳戶、取得帳戶目前的代幣餘額、取得特定代幣的擁有者,以及網路上可用代幣總供應量等功能。除此之外,它還有一些其他功能,例如授權第三方帳戶可以轉移某個帳戶中的一定數量的代幣。

如果一個智能合約實作了以下方法和事件,它就可以被稱為 ERC-721 非同質化代幣合約,一旦部署,它將負責追蹤在以太坊上建立的代幣。

來自 EIP-721 (opens in a new tab)

方法

事件

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

範例

讓我們來看看標準為何如此重要,它讓我們能輕鬆檢查以太坊上的任何 ERC-721 代幣合約。我們只需要合約應用程式二進位介面 (ABI) 即可建立任何 ERC-721 代幣的介面。如下所示,我們將使用簡化的 ABI,使其成為一個低門檻的範例。

Web3.py 範例

首先,請確保您已安裝 Web3.py (opens in a new tab) Python 函式庫:

pip install web3

加密貓合約除了標準事件外,還有一些有趣的事件。

讓我們來看看其中的兩個:PregnantBirth

進一步閱讀

教學:在以太坊上使用非同質化代幣 (ERC-721) 進行建置