币非凡 - 区块链|交易所导航 www.bifeifan.com
当前位置:网站首页 > 新闻 > 正文

如何创建和部署ERC-721(NFT)?

admin 2021-03-25 1792 浏览

概述

自Cryptokitties[1]推出以来,兼容 ERC-721 标准的加密收藏品已经非常流行,并在最近几个月向大规模采用的方向发展。本指南将涵盖使用0xcert/Ethereum-erc721[2]智能合约库创建和部署我们自己的 ERC-721(NFT)。

什么是非同质化(Non-Fungible)代币

同质化是指相同或可互换的意思。例如,以太坊代币、特定代币类的所有币,都具有相同的价值。Cardano 代币也是如此。同质化代币可 1:1 互换。

而 NFT 是独一无二的,每个人都是不同的。每一个代币都有独特的特点和价值。可以成为 NFT 的东西类型有收藏卡、艺术品、飞机票等。它们之间都有明显的区别,不能互换。将非同质化代币(NFT)视为稀有的收藏品;每个代币都有独特的特征,不寻常的属性,大多数时候,它利用元数据表示。

什么是 ERC-721?

ERC 是以太坊建议请求(Ethereum Request for Comment)的缩写,721 是提案编号。ERC 是以太坊生态系统中的应用级标准,它们可以是代币的智能合约标准,如ERC-20[3],ERC 的作者负责与以太坊社区建立共识,一旦提案被社区审核通过,就会成为标准。你可以跟踪最近的 ERC 提案这里[4]。ERC-721 的创建是为了提出在智能合约内跟踪和转移 NFT 的功能。

ERC-721[5]是一个开放的标准,它描述了如何在 EVM(以太坊虚拟机)兼容的区块链上构建非同质化代币;它是非同质化代币的标准接口;这是一套规则,使其易于与 NFT 交互。NFT 不仅是 ERC-721 代币,还可以是ERC-1155[6]代币。

以下是 ERC-721 标准中定义的一组函数和事件:ERC-721 定义了一些符合 ERC-20 的函数。这使得现有钱包更容易显示简单的代币信息:

ERC20 类函数:

  • name: 用于定义代币的名称。

  • symbol: 用于定义标记代币的符号。

  • totalSupply: 这个函数用来定义区块链上的代币总数,供应量不必是恒定的。

  • balanceOf: 返回一个地址拥有的 NFT 数量。

Ownership 函数

本函数返回代币所有者的地址。由于每个 ERC-721 代币都是独一无二的,非同质化的,它们在区块链上由一个 ID 来表示。其他用户、合约、应用可以使用这个 ID 来确定代币的所有者。

  • approve: 此函数批准另一个实体代表所有者转让代币的权限。

  • takeOwnership: 这是一个可选的函数,它的作用就像一个取款函数,因为外界可以调用它从另一个用户的账户中取出代币。当一个用户被批准拥有一定数量的代币,可以使用 takeOwnership。

  • transfer: 这是另一个转移函数;它允许所有者将代币转让给另一个用户,就像加密货币一样。

  • tokenOfOwnerByIndex: 这是一个可选的函数,但建议使用。每个所有者可以同时拥有一个以上的 NFT。其独特的 ID 可以识别每一个 NFT,结果可能会变得难以跟踪 ID。所以合约将这些 ID 存储在一个数组中,tokenOfOwnerByIndex 函数让我们从数组中检索这些信息。

元数据

tokenMetadata: (可选)一个接口,让我们可以发现代币的元数据或其数据的链接。

事件

  • Transfer:当代币的所有权从一个人变为另一个人时,该事件被触发。发出的信息包括哪个账户转移了代币,哪个账户收到了代币,以及哪个代币(通过 ID)被转移。

  • Approve: 当用户批准另一个用户获得代币的所有权时,该事件就会被触发,也就是说,每当 approve 函数被执行时,该事件就会被触发。它发出的信息包括:当前哪个账户拥有该代币,哪个账户被批准在未来拥有该代币,以及哪个代币(通过 ID)被批准转让其所有权。

非同质化代币的使用场景

**数字艺术(或实物艺术):**艺术作品是 NFT 最受欢迎的使用案例。数字艺术拍卖是 NFT 的第一个应用,并且还在继续发展。**游戏:**提供游戏内购和游戏收藏。**房地产:**将房产和智能合约 Token 化,并进行买卖。**金融:**贷款、期货等金融工具,并承担其他责任。**软件标题:**软件授权,确保反盗版和隐私。**演唱会门票/体育比赛门票:**为了保证在卖票过程中不发生欺诈行为,粉丝可以在一个地方查看以往的经历。**KYC 合规性:**为特定用户的 KYC 创建代币。

获得测试 ETH

现在我们知道了什么是 ERC-721 代币以及它们是如何工作的,让我们看看如何构建和部署自己的代币。

我们将在 Ropsten 测试网上部署合约。开始前,你需要安装Metamask[7]浏览器扩展来创建一个 ETH 钱包和获取一些测试 ETH,你可以通过进入Ropsten 水龙头[8]来获得。你需要在 Metamask 钱包上选择 Ropsten 测试网络,并将自己的钱包地址复制粘贴到水龙头中的文本字段中,然后点击“Send me test Ether”。

如何创建和部署ERC 721(NFT)? NFT ERC OVC前景预测2020年 OVC OVC价格最高多少 新闻  第1张 "image": "https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC",
}

现在添加 JSON 文件:

$ ipfs add nft.json

复制从 Qm 开始的哈希值,并添加 https://ipfs.io/ipfs/前缀,它必须看起来像这样https://ipfs.io/ipfs/QmWKqwMJQHSfpfRFGUVGPFFtkBJ5WkFzhjQpruhSLtLWXB, 保存这个网址。我们需要这个来铸造 NFT。

创建我们自己的代币。

为了方便和安全,我们将使用0xcert/ethereum-erc721[11]合约来创建我们的 NFT 合约。有了 0xcert/ethereum-erc721,我们不需要写整个 ERC-721 接口。相反,我们可以导入库合约并使用它的函数。前往以太坊 Remix[12] IDE,制作一个新的 Solidity 文件,例如 nft.sol, 将以下代码粘贴到 Solidity 文件中。

// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;

import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";
import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol";

contract newNFT is NFTokenMetadata, Ownable {

constructor() {
nftName = "Synth NFT";
nftSymbol = "SYN";
}

function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _uri);
}

}

以下是代码的解释:

第 1 行:指定SPDX 许可证[13]类型,这是在 Solidity ^0.6.8 之后增加的。每当智能合约的源代码向公众开放时,这些许可证可以帮助解决/避免版权问题。如果你不想指定任何许可证类型,你可以使用一个特殊的值 UNLICENSED,或者直接跳过整个注释(它不会导致错误,只是一个警告)。

第 2 行:声明 Solidity 版本。

第 4-5 行:导入 0xcert/ethereum-erc721 合约。

第 7 行:合约命名为 newNFT,它继承了 NFTokenMetadata 和 Ownable 合约。

第 9-12 行:初始化构造函数并设置名称及代币符号。

第 14 行:声明函数 mint 有三个参数,类型为地址的变量_to,存储 NFT 代币接收者的地址,类型为 uint256 的变量_tokenId,将保存代币 id,类型为字符串的变量_uri,将存储 JSON 文件的 URI。将 mint 声明为外部函数,可以从其他智能合约和当前合约之外访问。

第 15 行:使用接收方的地址和代币 ID 来铸造代币。

第 16 行:使用代币 id 和 JSON 文件的 URI 设置代币 URI。

编译智能合约,并使用Injected Web3进行部署(编译合约前一定要在 Metamask 上选择 Ropsten testnet)。批准来 metamask 的交易。

如何创建和部署ERC 721(NFT)? NFT ERC OVC前景预测2020年 OVC OVC价格最高多少 新闻  第2张remix

如果你在部署前收到一条错误消息:此合约可能是抽象的,请确保在合约选项卡下选择适当的合约。在 Metamask 中确认交易。

如何创建和部署ERC 721(NFT)? NFT ERC OVC前景预测2020年 OVC OVC价格最高多少 新闻  第3张metamask

现在进入 Remix 中的 Deployed Contracts(部署的合约)部分,展开部署的合约。你会看到一堆函数/方法。展开 mint 函数并添加以下参数:

  1. 在_to 中添加你的 Ropsten 地址。

  2. 在 _tokenid 中输入任何数字值 (建议为 1,因为它是第一个)。

  3. 在_uri 字段中,添加上一节获得的 JSON 文件的 URI。

如何创建和部署ERC 721(NFT)? NFT ERC OVC前景预测2020年 OVC OVC价格最高多少 新闻  第4张img

点击交易,并从 metamask 确认交易。(需要你已经有了 Ropsten 链上的 ETH)

你可以通过输入我们之前提到的 token id 来查看其他细节,如名称、符号、所有者或 tokenuri。

如何创建和部署ERC 721(NFT)? NFT ERC OVC前景预测2020年 OVC OVC价格最高多少 新闻  第5张nft 信息

结论

恭喜你创建了自己的 NFT,帮助你的艺术家朋友把他们的艺术作品发布到以太坊区块链上,或者自己也成为一名艺术家。查看0xcert/ethereum-erc721 的 GitHub[14]获取更多例子。


原文:https://www.quiknode.io/guides/solidity/how-to-create-and-deploy-an-erc-721-nft

参考资料

[1]

Cryptokitties: https://www.cryptokitties.co/

[2]

0xcert/ethereum-erc721: https://github.com/0xcert/ethereum-erc721

[3]

ERC-20: https://www.quiknode.io/guides/solidity/how-to-create-and-deploy-an-erc20-token

[4]

这里: https://github.com/ethereum/EIPs/issues

[5]

ERC-721: https://eips.ethereum.org/EIPS/eip-721

[6]

ERC-1155: https://eips.ethereum.org/EIPS/eip-1155

[7]

Metamask: https://metamask.io/

[8]

Ropsten水龙头: https://faucet.ropsten.be/

[9]

IPFS: https://learnblockchain.cn/tags/IPFS

[10]

IPFS文档中的安装指南: https://ipfs.io/#install

[11]

0xcert/ethereum-erc721: https://github.com/0xcert/ethereum-erc721

[12]

以太坊 Remix: https://remix.ethereum.org/

[13]

SPDX许可证: https://spdx.org/licenses/

[14]

0xcert/ethereum-erc721的GitHub: https://github.com/0xcert/ethereum-erc721

相关推荐

【直播实录】牛市如何提高赚钱胜率?——我用网格交易天地单
  • 【直播实录】牛市如何提高赚钱胜率?——我用网格交易天地单
  • 【直播实录】牛市如何提高赚钱胜率?——我用网格交易天地单
  • 【直播实录】牛市如何提高赚钱胜率?——我用网格交易天地单
  • 【直播实录】牛市如何提高赚钱胜率?——我用网格交易天地单
【分析师看后市】比特币再创新高,Binance进行加密货币交易所的突破
【分析师看后市】比特币再创新高,Binance进行加密货币交易所的突破

非常感谢大家对币世界研究院原创栏目【分析师看后市】的喜爱,现已推出同名深度系列原创栏目。如果你有喜欢的分析师,请在快讯、深度文章、B圈进行留言,点名你喜欢的分析...

4小时前 admin

关于以太坊柏林升级,你需要了解的一切
关于以太坊柏林升级,你需要了解的一切

延期多时的以太坊柏林升级(BerlinUpgrade)即将上线,这是继以太坊伊斯坦布尔和穆尔冰川升级之后的最新一次升级。因Geth客户端的过于集中化的问题...

4小时前 admin

致敬FTX?币安版股权代币有何不同?
  • 致敬FTX?币安版股权代币有何不同?
  • 致敬FTX?币安版股权代币有何不同?
  • 致敬FTX?币安版股权代币有何不同?
  • 致敬FTX?币安版股权代币有何不同?
狂人说趋势:历史新高后,最想告诉大家的是延迟享受
狂人说趋势:历史新高后,最想告诉大家的是延迟享受

狂人说普天同庆,比特币再创历史新高,现在的比特币,已经是常人不能所及的存在了,42万人民币一枚,对于多数上班族来说,拥有几枚将成为一种梦想。我们一次一次的见证历...

4小时前 admin

MDEX联合DeBank开启价值60,000美金MDX空投活动

据悉,今日DeBank宣布与MDEX达成战略合作,为庆祝这一消息公布,MDEX在DeBank准备了价值60000美金的MDX空投活动,通过DeBank在MDEX交易挖矿既能获得MDX,还能免费拿MDX...

FTX与币安版股权代币有何不同?FTX创办人:他们应该还在测试版
  • FTX与币安版股权代币有何不同?FTX创办人:他们应该还在测试版
  • FTX与币安版股权代币有何不同?FTX创办人:他们应该还在测试版
  • FTX与币安版股权代币有何不同?FTX创办人:他们应该还在测试版
  • FTX与币安版股权代币有何不同?FTX创办人:他们应该还在测试版
欧易CEO Jayhao:Coinbase上市作为加密资产交易所仍处于早期市场探索阶段
欧易CEO Jayhao:Coinbase上市作为加密资产交易所仍处于早期市场探索阶段

Coinbase将于4月14日登录纳斯达克上市,这一消息无疑为加密资产市场带来深远影响,让加密资产走进更多人的视野,也将成为发展史中的里程碑事件。杰伦见证了比特...

4小时前 admin

Coinbase上市前夕,比特币杀上63000美元高位

北京时间4月13日,在美国最大加密货币交易所Coinbase上市前夕,比特币突破63000美元,抵达了一个新的里程碑。比特币在过去一周一直在60000美元附近徘徊,终于在突破阻力位,成功站上了新的高度...

欧易OKEx投研 | 比特币市值占比降至两年新低,对牛市有何影响?
  • 欧易OKEx投研 | 比特币市值占比降至两年新低,对牛市有何影响?
  • 欧易OKEx投研 | 比特币市值占比降至两年新低,对牛市有何影响?
  • 欧易OKEx投研 | 比特币市值占比降至两年新低,对牛市有何影响?
  • 欧易OKEx投研 | 比特币市值占比降至两年新低,对牛市有何影响?
解读Coinbase,是什么创造了加密第一个IPO
解读Coinbase,是什么创造了加密第一个IPO

Coinbase上周表示,其第一季度利润预计将在7.3亿美元至8亿美元之间,是2020年全年利润的两倍以上。2021年头三个月的收入可能超过去年13亿美元的全部...

4小时前 admin

彻底疯了!比特币突破63000美元关口,再创历史新高,15万做空投资者却惨遭“血洗”,56亿资金灰飞烟灭......
彻底疯了!比特币突破63000美元关口,再创历史新高,15万做空投资者却惨遭“血洗”,56亿资金灰飞烟灭......

注:本文对最新行情数据进行了更改,主要是比特币的当前价格和历史新高。今日比特币盘中加速向上突破,截至发稿,比特币突破63000美元关口,报63024美元/枚,再...

4小时前 admin

火星投研 | NFT的价值解析:从Aavegotch在DeFi、PLAY、Polygon的角色谈起

...

从 11 页 PPT 开始,Coinbase 如何成为估值千亿美元的加密货币交易所第一股?
  • 从 11 页 PPT 开始,Coinbase 如何成为估值千亿美元的加密货币交易所第一股?
  • 从 11 页 PPT 开始,Coinbase 如何成为估值千亿美元的加密货币交易所第一股?
  • 从 11 页 PPT 开始,Coinbase 如何成为估值千亿美元的加密货币交易所第一股?
  • 从 11 页 PPT 开始,Coinbase 如何成为估值千亿美元的加密货币交易所第一股?
从硅谷到币圈,美国的霸权是我们赠送的。

作者:张化桥星期三,美国的Coinbase会通过直接上市方式在美国上市。这标志着世界最大的数字货币交易所扎根在美国,而且在美国挂牌上市。随后,GalaxyDigital,一个在加拿大已经通过后门...