译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3]
本教程是 NFT 系列的第一部分,将带你逐步了解如何使用以太坊和 Inter Planetary File System(IPFS)编写和部署一个非同质化(ERC-721 代币)智能合约。
随着 NFT 将区块链带入公众视野,现在是一个极好的机会,通过在以太坊区块链上发布自己的 NFT(ERC-721 代币)来宣传自己。
Alchemy[4] 非常自豪能够为 NFT 领域的大公司提供支持,包括 Makersplace(最近在佳士得创造了 6900 万美元的数字艺术品销售记录)、Dapper Labs(NBA Top Shot & Crypto Kitties 的创造者)、OpenSea(世界上最大的 NFT 市场)、Zora、Super Rare、NFTfi、基金会、Enjin、Origin Protocol、Immutable 等等。
在本教程中,我们将通过使用MetaMask[5]、Solidity[6]、Hardhat[7]、Pinata[8]和Alchemy[9]在 Ropsten 测试网络上创建和部署一个 ERC-721 智能合约。
在本教程的第二部分,将讨论如何使用我们的智能合约来铸造一个 NFT,在第三部分,我们将解释如何在 MetaMask 上查看你的 NFT。
当然,如果你在任何时候有问题,不要犹豫,请联系Alchemy Discord[10]或访问Alchemy 的 NFT API 文档[11]!
第 1 步:连接到以太坊网络
有一堆方法可以向以太坊区块链提出请求,但为了方便起见,我们将使用Alchemy[12]上的免费账户,这是一个区块链开发者平台和 API,允许我们与以太坊链进行通信,而无需运行我们自己的节点。
在本教程中,我们还将利用 Alchemy 开发者工具进行监控和分析,以了解我们的智能合约部署中的幕后情况。如果你还没有 Alchemy 账户,你可以免费注册这里[13]。
第 2 步:在 Alchemy 你创建应用获取 API 密钥
一旦你创建了 Alchemy 账户,你可以通过创建一个应用程序来生成一个 API 密钥。我们通过 API 密钥向 Ropsten 测试网络发出请求。如果你想了解更多关于测试网络的信息,请查看本指南[14]。
- 导航到 Alchemy 仪表板的
Create App
页面,将鼠标悬停在导航栏的App
上,并点击Create App
,
创建你的应用程序
- 为你的应用命名(我们使用
My First NFT!
),提供一个简短的描述,环境选择Staging
,并为你的网络选择Ropsten
。
配置应用
- 点击
Create app
,就可以了! 你的应用应该出现在下面的表格中。
第 3 步:创建一个以太坊账户(地址) {#create-eth-address}
我们需要一个以太坊账户来发送和接收交易。在本教程中,我们将使用 MetaMask,这是一个浏览器中的虚拟钱包,用于管理你的以太坊账户地址。
你可以免费下载MetaMask[15]并创建一个账户。或者如果你已经有一个账户,确保切换到右上方的 Ropsten测试网络
(这样我们就不用花费真的以太币)。
设置Ropsten为你的网络
第 4 步:从水龙头添加以太币 {#step-4-add-ether-from-a-faucet}
为了将我们的智能合约部署到测试网络,我们需要一些假的 ETH。你可以去FaucETH[16]获得 ETH,输入你的 Ropsten 账户地址,点击 Request funds
,然后在下拉菜单中选择 Ethereum Testnet Ropsten
,最后再次点击 Request funds
按钮。你应该很快在你的 MetaMask 账户中看到收到的 ETH!
第 5 步:检查你的余额 {#check-balance}
为了再次确定我们的余额,让我们使用Alchemy 的 composer 工具[17]做一个eth_getBalance[18]请求。这将返回我们钱包中的 ETH 数量。在你输入你的 MetaMask 账户地址并点击 发送请求
后,你应该看到一个像这样的响应:
{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}
- 注意: 余额的结果返回以 wei 为单位,而不是 eth, Wei 是以太币的最小单位,转换关系是:1 eth = 1018 wei. 因为如果我们转换 0xde0b6b3a7640000 为 10 进制,者是 1*1018 , 等于 1 ETH(这个测试网上的假币).
第 6 步: 初始化工程
首先,我们需要为项目创建一个文件夹。导航到命令行并输入:
代码语言:javascript复制mkdir my-nft
cd my-nft
现在我们进入了项目文件夹,我们将使用npm init
来初始化项目。如果你还没有安装 npm,按照这个说明[19](我们还需要 Node.js,所以也下载它!)
npm init
初始化项目时,需要进行一些设置,以回答问题的方式设置,如何回答安装问题并不重要,以下是我们的做法,以供参考:
代码语言:javascript复制package name: (my-nft)
version: (1.0.0)
description: My first NFT!
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/thesuperb1/Desktop/my-nft/package.json:
{
"name": "my-nft",
"version": "1.0.0",
"description": "My first NFT!",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC"
}
第 7 步: 安装 Hardhat
Hardhat[20]是一个开发环境,用于编译、部署、测试和调试你的以太坊软件。它可以帮助开发者在部署到真实链之前在本地构建智能合约和 dApps。
在我们的 my-nft 项目中运行:
代码语言:javascript复制npm install --save-dev hardhat
查看这个页面,了解更多关于安装说明[21]的细节。
第 8 步:创建 Hardhat 项目 {#create-hardhat-project}
在我们的项目文件夹中运行:
代码语言:javascript复制npx hardhat
然后你应该看到一个欢迎信息和选择你想做什么的选项。这里选择 Create an empty hardhat.config.js
。
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888