Alchemy 0撸教程:第一周任务 通往web3.0之路 手把手教你部署NFT智能合约(ERC721)

Alchemy 0撸教程:第一周任务 通往web3.0之路 手把手教你部署NFT智能合约(ERC721)

写在前面:接下来我会把Alchemy 1-10周的任务全部写出来。(1-10周理解成10个任务,完成后每个任务会有一个NFT,并不是代表你这周只能做第一个,下周只能做第二个)

注意:所有任务,只能用电脑做,因为Alchemy这个项目是教大家写Web3.0代码的,通过这些任务让你知道智能合约是怎么部署的,NFT画廊以及平台是怎么搭建的,swap dapp是怎么搭建的,以及gamefi的简单代码之类的。它是从纯粹技术角度来帮助大家更加深刻理解Web3.0。

电脑配置要求:win 8及以上的系统。(因为需要装一些软件,那些软件的配置对电脑的要求至少是win 8)

小狐狸钱包:最好是空钱包,你不用的,因为涉及到要在软件上传一些私钥之类的重要信息。

Alchemy项目介绍:

2019年12月,Alchemy完成1500万刀A轮融资,投资机构是Pantera Capital,斯坦福大学,Coinbase以及三星等

2021年4月,Alchemy完成8000万刀B轮融资,Coatue和Addition领投,DFJ Growth、K5 Global、Chainsmokers(烟鬼组合)、演员Jared Leto和Glazer家族参投。

2021年10月,Alchemy完成2.5亿刀C轮融资,由a16z领投的。

2022年2月,Alchemy又完成2亿美元融资,Lightspeed与Silver Lake领投。

截止目前为止一共融资5.45亿刀。估值为105亿刀。

有a16z领投的项目放心就撸就可以了。项目背景强大、经费充足、踏实做事、还没有发token,目前每完成一个任务给一个灵魂绑定的NFT(NFT在你的钱包不可以卖,跟钱包是绑定的,Web3.0后期玩法非常多)

并且由于任务难度太大,并且任务比较多,劝退了很多人。并没有那么多撸子能坚持下来。第一遍做1-10个任务,快的话需要两天,一般需要三天时间,每天十个小时的那种。做到后面账号就快很多,但是一整天时间是要的。并且做完后官方快照速度慢。这又劝退了一大部分人。能坚持做下来的没几个。如果项目最后空投,那么绝对是大毛。一个NFT预估1000刀应该不是什么大问题。(开玩笑的,你们自己判断。这种毛先撸为尽)

教程开始

1.使用 OpenZeppelin 合约编译器来部署ERC721 智能合约 (erc721合约是用于NFT的。erc20是token)

进入网页

Contracts Wizard – OpenZeppelin Docs

进入页面后,将看到以下编译器:(按钮默认是在erc20上 你们点一下 erc721) 名字随便取 Name 相当于全程,Symbol相当于缩写。随便取也没事。

然后勾选下面4个按钮

勾选后代码如下:(懂代码的看一下,不懂的也没啥好奇心的就忽略下面的代码)

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

import “@openzeppelin/contracts/token/ERC721/ERC721.sol”;

import “@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol”;

import “@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol”;

import “@openzeppelin/contracts/access/Ownable.sol”;

import “@openzeppelin/contracts/utils/Counters.sol”;

contract Alchemy is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {

using Counters for Counters.Counter;

Counters.Counter private _tokenIdCounter;

constructor() ERC721(“Alchemy”, “ALCH”) {}

function safeMint(address to, string memory uri) public onlyOwner {

uint256 tokenId = _tokenIdCounter.current();

_tokenIdCounter.increment();

_safeMint(to, tokenId);

_setTokenURI(tokenId, uri);

}

// The following functions are overrides required by Solidity.

function _beforeTokenTransfer(address from, address to, uint256 tokenId)

internal

override(ERC721, ERC721Enumerable)

{

super._beforeTokenTransfer(from, to, tokenId);

}

function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {

super._burn(tokenId);

}

function tokenURI(uint256 tokenId)

public

view

override(ERC721, ERC721URIStorage)

returns (string memory)

{

return super.tokenURI(tokenId);

}

function supportsInterface(bytes4 interfaceId)

public

view

override(ERC721, ERC721Enumerable)

returns (bool)

{

return super.supportsInterface(interfaceId);

}

}

2.使用 REMIX IDE 修改和部署ERC721 合约

在 OpenZeppelin Wizard 编译器的顶部,有一个“Open in Remix”按钮,单击它将在浏览器的新选项卡中打开 REMIX IDE。

删除17行的onlyOwner(改变能mint这个NFT的权限,让所有人都能来mint),否则只允许智能合约的所有者(部署智能合约的钱包地址)mint你创建的NFT。

在第14行填入 uint256 MAX_SUPPLY = 100000; (这个是NFT数量 后面你写多少都可以)

在第19行添加 require(_tokenIdCounter.current() <= MAX_SUPPLY, “Im sorry we reached the cap”); 引号里面的意思是NFT全部被mint完后,有一个提示,告诉别人mint完了。

创建一个免费的Alchemy帐户(用谷歌邮箱创建,其他的好像不行)

首先,进入Alchemy官网 “登录”并创建一个新帐户(我不发链接了,你们手敲吧,链接太多文章就被删了)

点一下用谷歌邮箱注册,直接会跳转到你谷歌邮箱

进入Dashboard,点击create app。

名字和描述可以随意输入,最下面选择以太链的Rinkeby,点击Create app。(有些账户注册好就有系统就自动创建了这个,那就不用再创建新的了)

创建完成后,回到仪表板,单击“VIEW KEY”按钮,然后复制 HTTPS URL:

3.将 Alchemy Rinkeby网络 添加到 Metamask 钱包

在其中填写 Rinkeby 网络和 RPC URL 信息并保存(网络名称可以随便取,但是你自己要以后看得懂。如果你需要撸多个钱包,那么建议你把钱包最后三位来命名。比如321-rinkeby网络 这样以后你看到这个你就明白是尾号312钱包对应的测试网络,就不会乱) RPC URL就是你之前复制的 HTTPS URL

4.领水

获取 Rinkeby Test ETH (网址不放了,你们手敲吧。进入后点右上角用Alchemy账号登录)

将钱包地址复制到文本栏中,然后点击“Send Me ETH”。10-20 秒后,会看到 Rinkeby ETH 出现在 Metamask 钱包中。

5 .在Rinkeby 测试网上编译和部署 NFT 智能合约

回到 Remix,点击页面左侧的编译器菜单,版本选0.8.4,勾选Auto compile,然后点击“编译”按钮:(先选版本,再编译。如果不放心就这个动作重复两三次,怕你编译的是不是0.8.4版本)

然后点击“Deploy and Run Transactions”菜单,点击Environment下拉菜单并选择“Injected provider (Metamask)”,点击contract选择Alchemy那个,单击deploy。(这里注意看 account下面那个钱包地址是不是你现在的地址,看里面的测试代币余额是不是对的,如果不对,就小狐狸切换到你的地址)

点击deploy部署按钮后,将出现 Metamask 弹出窗口,单击“确认”,然后继续支付 Gas 费用。(部署一次就行了,没必要部署很多,到时候你自己搞混淆)支付完gas费用后,你看我标注的地方有没有一个蓝色的小勾勾,如果有就代表部署成功了。

10 秒后,您应该会在 Deployed Contracts 下看到该合约:(点击圈起来的按钮,把合约复制出来。或者你去小狐狸里面看一下你部署的合约也行)

6.在 IPFS 上创建和上传元数(理解成你NFT图片的样式及数据那些)

首先去filebase上面创建一个新帐户。

登录后,单击左侧菜单上的存储桶按钮,然后创建一个新存储桶(随便取名字,重名不行):

导航到存储桶,单击上传按钮,然后上传您要用于 NFT 的图像(NFT图片用这两张中的一张吧,或者你们用自己电脑的图片也行)

上传后单击它并复制 IPFS 网关 URL:

在你电脑桌面上建一个txt文档,粘贴以下代码,保存,然后将文件重命名为“metadata.json”。注意将第6行image那里改成刚才的ipfs gateway url 链接。(看我标红的地方)

{

“description”: “This NFT proves Ive created and deployed my first ERC20 smart contract on Rinkeby with Alchemy Road to Web3”,

“external_url”: “http://Alchemy.com

“,

“image”: “https://ipfs.filebase.io/ipfs/bafybeihyvhgbcov2nmvbnveunoodokme5eb42uekrqowxdennt2qyeculm

“,

“name”: “A cool NFT”,

“attributes”: [

{

“trait_type”: “Base”,

“value”: “Starfish”

},

{

“trait_type”: “Eyes”,

“value”: “Big”

},

{

“trait_type”: “Mouth”,

“value”: “Surprised”

},

{

“trait_type”: “Level”,

“value”: 5

},

{

“trait_type”: “Stamina”,

“value”: 1.4

},

{

“trait_type”: “Personality”,

“value”: “Sad”

},

{

“display_type”: “boost_number”,

“trait_type”: “Aqua Power”,

“value”: 40

},

{

“display_type”: “boost_percentage”,

“trait_type”: “Stamina Increase”,

“value”: 10

},

{

“display_type”: “number”,

“trait_type”: “Generation”,

“value”: 2

}

}

回到 Filebase 并上传metadata.json文件在我们上传图像的同一存储桶中。

最后,单击 CID 并复制它,在下一部分中需要它来构建 NFT 的令牌 URI:

7.Mint 你的NFT

返回 Remix 并在 Deploy & Run Transactions 菜单中,进入“已部署的合约” – 然后单击我们刚刚部署的合约。单击 safeMint 下拉框 并将您的地址 和以下字符串粘贴到 uri (cid处复制刚才的)字段中。

to 是你自己的钱包地址 url的格式是: ipfs://你的cid

如上图,单击交易将创建一个 Metamask 弹出窗口,提示您支付 gas 费用。

点击“确认”并继续铸造你的第一个 NFT!

等待几秒钟,为确保mint成功通过,将您的地址复制并粘贴到 balanceOf 方法输入中点击call,它应该显示您有 1 个 NFT。或者你去小狐狸钱包看链上数据,是不是mint成功了。

在tokenUri 插输入0 作为 id 参数,点击call,它应该显示你的 tokenURI。

8.去OpenSea测试网站上查看你刚刚mint的NFT

opensea测试网站(你们手敲)

Metamask钱包登录。 然后单击你的个人资料图片,就能看到你刚刚mint的 NFT了。(NFT编号是0)

如果图像看不见,单击它,然后单击“刷新元数据”按钮。(网站更新数据慢,几个小时后就能看见。或者永远也看不见图片,不过没事,任务做到这里就算完成了。显不显示不重要了。)

然后第一周任务,就完成了。

【注意】你要保存的资料:你的谷歌账号 你的钱包地址 你的任务合约地址/Github代码地址/你任务的网址中的一个(有些任务只有合约地址 有些任务都有,都有的你就选一个填) 这些都会在领取NFT的时候用上。建议多做几个任务后,然后一起提交表格。

表格链接要去官方的discord里面问。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注