如何花10分钟创建和部署NFT智能合约

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

 [[387050]]

本文转载自微信公众号「区块链研究实验室」,作者链三丰 。转载本文请联系区块链研究实验室公众号。   

什么是NFT

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

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

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

  • 它们是唯一的:每个不可替代的令牌都代表数字或现实世界中的某个对象,并且即使存在类似的对象也是唯一的。例如,即使有人“创造”了与NFT相同的数字艺术作品100件,每件都会在区块链上被单独跟踪。
  • 它们是可验证的:这些NFT的历史所有权记录在公共分类帐中,并且所有人都可以看到。这使得难以“复制”并且相对简单地证明真实性。
  • 它们是可交易的:与其他加密资产一样,它们也是可交易的,尽管通常在特殊交易所交易。

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

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

搭建环境

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

1.安装CLI工具

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

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

2.设置网络

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

  1. export WEB3_NETWORK=gochain 
  2.  
  3. for ethereum: 
  4.  
  5. # export WEB3_NETWORK=ethereum 

3.添加/获取气体

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

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

  1. web3 account create 

这将打印:

  1. Private key: 0xABC123 
  2. Public address: 0xXYZ456 

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

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

  1. export WEB3_PRIVATE_KEY=0xABC123 

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

部署工作

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

创建合同

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

  1. web3 generate contract erc721 --symbol KATS --name "Krypto Kats" --base-uri https://kryptokats.com/token/ 

这将生成一个名为的文件KATS.sol,该文件是您新的NFT合同的统一程序。

1.部署合同

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

  1. web3 contract build KATS.sol 
  2. web3 contract deploy KATS.bin 

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

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

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

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

  1. Parsed Logs: [ 
  2.   { 
  3.     "name""Transfer"
  4.     "fields": { 
  5.       "from""0x00000"
  6.       "to""0x000ABC"
  7.       "tokenId""0x00001" 
  8.     } 
  9.   } 

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

转移NFT

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

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

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

 

责任编辑:武晓燕 来源: 区块链研究实验室
相关推荐

2021-04-20 12:53:34

Polkadot部署合约

2021-03-04 09:26:57

微服务架构数据

2021-05-06 09:42:24

Truffle部署智能

2020-08-07 15:43:03

Python表格代码

2021-03-24 10:58:08

Vuesrc前端

2021-07-15 06:43:11

Bash调试脚本

2021-04-23 09:50:41

topLinux命令

2013-09-13 14:08:01

2020-12-17 08:00:00

区块链数据以太坊

2020-10-13 18:22:58

DevOps工具开发

2014-08-08 09:30:04

android scrollview

2021-08-01 21:38:07

网页点灯网关

2018-11-28 11:20:53

Python函数式编程编程语言

2022-08-29 15:02:53

远程桌面

2020-10-29 08:28:42

Java NIO异步非阻塞

2020-05-22 10:20:27

Shiro架构字符串

2018-01-10 14:15:14

2019-07-19 14:06:48

APP代码打包

2019-07-18 16:32:06

Python函数数据

2021-05-28 07:38:20

内存溢出场景
点赞
收藏

51CTO技术栈公众号