区块链研究实验室 | 如何花10分钟创建和部署NFT智能合约

什么是NFT

NFT代表不可替代的令牌,例如,一个美元钞票是可替代的,因为您可以将其交换为另一个美元钞票(并且您不必担心美元钞票的序列号)。同样,比特币是一个可替代的代币,因为两个不同的比特币完全相同。

那么,不可替代的事物就是那些唯一且不能与其他事物互换的事物。不可替代的令牌本质上是在区块链上跟踪的唯一令牌。

不可替代的代币具有以下特征:

它们是唯一的:每个不可替代的令牌都代表数字或现实世界中的某个对象,并且即使存在类似的对象也是唯一的。例如,即使有人“创造”了与NFT相同的数字艺术作品100件,每件都会在区块链上被单独跟踪。

它们是可验证的:这些NFT的历史所有权记录在公共分类帐中,并且所有人都可以看到。这使得难以“复制”并且相对简单地证明真实性。

它们是可交易的:与其他加密资产一样,它们也是可交易的,尽管通常在特殊交易所交易。

大多数NFT都建立在以太坊区块链之上,如今不可替代令牌(NFT)风行一时,作为开发人员,您可能想知道如何创建自己的NFT。本文将解释如何以最简单的方式做到这一点,以便您在短短几分钟内就可以启动并运行。

我们将使用标准的OpenZeppelin ERC721合约,这是智能合约的黄金标准。有许多用于部署智能合约的工具,但是在本文中,我们将使用web3 CLI工具,因为它是编译和部署合约的最快,最简单的工具。

搭建环境

在FØ llowing东西只是必须做一次,然后就可以部署和互动就像你想不再次做这个东西。

1.安装CLI工具

这个衬板将安装该工具,因此您可以立即开始使用它。如果您担心install.sh的功能,请随时阅读。

curl -LSs https://raw.githubusercontent.com/gochain/web3/master/install.sh| SH

2.设置网络

我们将在这里使用GoChain,因此我们不必支付10美元来部署合同,然后再为每个NFT投入10美元。使用GoChain,我们只需要支付一分钱的一小部分,并且100%与以太坊兼容,因此我们可以像使用以太坊一样使用它。当然,您可以更改下面的行以指向以太坊,并根据需要支付额外的费用。

export WEB3_NETWORK=gochain# for ethereum:# export WEB3_NETWORK=ethereum

3.添加/获取气体

您将需要使用带有一些供气的a来进行这些交易,或者创建一个新的供其使用的供气。这将是GoChain上的$ GO或以太坊上的$ ETH。

要创建一个新帐户,请运行:

web3 account create

这将打印:

Private key: 0xABC123Public address: 0xXYZ456

发送一些$ GO到“公共地址”。如果您需要一些$ GO入门,请进入我们的电报并询问,那里有人会很好地向您发送一两个$ GO。

复制“私钥”(或根据需要使用现有的私钥)并运行:

export WEB3_PRIVATE_KEY=0xABC123

另外,请将此私钥的副本保存在安全的地方,以便下次使用。

部署工作

既然我们都已设置好网络集,并且我们的私钥中设置了一些加油键,我们就可以开始玩得开心了。

创建合同

该WEB3 CLI已经内置代码生成器常见的合同,如ERC20和ERC721的。赶紧跑:

web3 generate contract erc721 --symbol KATS --name "Krypto Kats" --base-uri https://kryptokats.com/token/
这将生成一个名为的文件KATS.sol该文件是您新的NFT合同的统一程序。

1.部署合同

从这里,我们只需要编译和部署它。同样,web3 CLI使此部分变得容易:

web3 contract build KATS.solweb3 contract deploy KATS.bin

这将打印出您的新合同地址。您现在已经部署了NFT合同!

现在已经部署了合同,我们只需要创建新合同即可。铸造NFT时,您需要提供拥有此新NFT的人员的地址:

web3 contract call --wait --abi KATS.abi --gas-limit 2000000 --function mint 0xABC

此功能产生一个全新的NFT,并将其分配给地址0xABC。ERC721的新OpenZeppelin预设具有自动递增的ID,因此您将在输出中看到新的令牌ID。例如:

Parsed Logs: [ { "name": "Transfer", "fields": { "from": "0x00000", "to": "0x000ABC", "tokenId": "0x00001" } }]

该输出已被截断,删除了一堆零,但是您可以看到新的令牌ID是number 1。

转移NFT

现在,如果您拥有NFT并想转让它,则可以调用该transferFrom函数:

web3 contract call --wait --abi KATS.abi --gas-limit 2000000 --function transferFrom 0xABC 0xXYZ 1

这会将ID为1的令牌转让给位于的新所有者0xXYZ。您可以在GoChain Explorer中查看和搜索令牌。

作者:链三丰,来源:区块链研究实验室

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!