原文标题:《估值 102 亿融资 5.45 亿的 Alchemy 项目 Road to Web3 第一周 NFT 获取教程》
原文作者:Greta
2019 年 12 月,Alchemy 完成 1500 万美元 A 轮融资,资方为 Pantera Capital,斯坦福大学,Coinbase,三星等。
2021 年 4 月,Alchemy 以 5.05 亿美元估值完成 8000 万美元 B 轮融资,Coatue 和 Addition 领投,DFJ Growth、K5 Global、Chainsmokers(烟鬼组合)、演员 Jared Leto 和 Glazer 家族参投。
2021 年 10 月,Alchemy 以 35 亿美元估值完成 2.5 亿美元 C 轮融资,由 a16z 领投的。
2022 年 2 月,Alchemy 以 102 亿美元估值完成 2 亿美元融资,Lightspeed 与 Silver Lake 领投。
Alchemy 是一个背景强大、经费充足、踏实做事、没有发币的团队,这样的项目不刷,难道去刷土狗吗?
并且,Alchemy 计划将新资金用于推广 Web3 采用,这方面的一些举措包括推出 Web3 University,就是现在的 Road to Web3 活动,活动为期 10 周,每周一个 NFT。看了下 nft 数量极少,估计由于任务难度大,很多小伙伴直接放弃,这样的项目若是空投,绝对是大毛。
官方原版教程链接,其中有长达 50 分钟的视频教程还有大篇幅的文字教程。我按照我的做法给大家一个易于操作的图文教程。
1. 开发 ERC721 NFT 智能合约需要做的第一件事是 进入 Open Zeppelin 智能合约向导页面。
进入页面后,您将看到以下编辑器:
2. 单击左上角的 ERC721 按钮,选择要使用的 ERC 标准类型,输入 Name 和 Symbol:
3. 如图所示勾选 NFT (ERC721) 代币功能:
勾选完毕后右侧代码如下:
// 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);
}
}
1. 首先,您可能已经注意到,在 OpenZeppelin Wizard 编辑器的顶部,有一个「Open in Remix」按钮,单击它将在浏览器的新选项卡中打开 REMIX IDE。
2. 删除 17 行的 onlyOwner,否则只允许智能合约的所有者(部署智能合约的钱包地址)铸造 NFT。
3. 在第 14 行填入 uint256 MAX_SUPPLY = 100000;
4. 在第 19 行添加 require(_tokenIdCounter.current() <= MAX_SUPPLY, "I'm sorry we reached the cap");
1. 首先,到 alchemy.com 点击「登录」并创建一个新帐户:
2. 进入 Dashboard,点击 create app。
3. 如图,名字和描述可以随意输入,最下面选择以太链的 Rinkeby,点击 Create app。
4. 创建完成后,回到仪表板,单击「VIEW KEY」按钮,然后复制 HTTPS URL:
1. 点击添加网络。
2. 在其中填写 Rinkeby 网络和 RPC URL 信息并保存。
3. 获取 Rinkeby Test ETH , 只需导航到 rinkebyfaucet.com ,将钱包地址复制到文本栏中,然后点击「Send Me ETH」。10-20 秒后,会看到 Rinkeby ETH 出现在 Metamask 钱包中。
1. 回到 Remix,点击页面左侧的编译器菜单,版本选 0.8.4,勾选 Auto compile,然后点击「编译」按钮:
2. 然后点击「Deploy and Run Transactions」菜单,点击 Environment 下拉菜单并选择「Injected provider (Metamask)」,点击 contract 选择 Alchemy 那个,单击 deploy。
3. 将出现 Metamask 弹出窗口,单击「确认」,然后继续支付 Gas 费用。
4. 如果一切都按预期工作,10 秒后,您应该会在 Deployed Contracts 下看到该合约:
1. 首先,到 filebase.com 创建一个新帐户。
登录后,单击左侧菜单上的存储桶按钮,然后创建一个新存储桶 (自己取名字,重名不行):
2. 导航到存储桶,单击 上传按钮,然后上传您要用于 NFT 的图像,建议使用以下内容 。
3. 上传后单击它并复制 IPFS 网关 URL:
4. 建 txt 文档,粘贴以下 JSON 代码,并将文件保存为「metadata.json」。注意将第三行 image 那里改成刚才的链接。
{
"description": "This NFT proves I've created and deployed my first ERC20 smart contract on Rinkeby with Alchemy Road to Web3",
"external_url": "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
}
}
5. 回到 Filebase 并上传 metadata.json 文件在我们上传图像的同一存储桶中。
6. 最后,单击 CID 并复制它,在下一部分中需要它来构建 NFT 的令牌 URI:
1. 返回 Remix 并在 Deploy & Run Transactions 菜单中,进入「已部署的合约」- 然后单击我们刚刚部署的合约。单击 safeMint 下拉框并将您的地址和以下字符串粘贴到 uri(cid 处复制刚才的)字段中。
ipfs://\<your\_metadata\_cid>
如上图,单击交易将创建一个 Metamask 弹出窗口,提示您支付 gas 费用。
点击「确认」并继续铸造你的第一个 NFT!
2. 等待几秒钟,为确保铸币成功通过,将您的地址复制并粘贴到 balanceOf 方法输入中点击 call,它应该显示您有 1 个 NFT。
3. 在 tokenUri 插入「0」作为 id 参数,点击 call,它应该显示你的 tokenURI。
1. 到 testnets.opensea.io 并 使用您的 Metamask 钱包登录。然后单击您的个人资料图片,您应该会在那里看到您新铸造的 NFT。
2. 如果图像尚不可见,请单击它,然后单击「刷新元数据」按钮。
3. 有时 OpenSea 很难识别测试网元数据 - 并且可能需要长达 6 小时才能看到它。一段 时间后,您的 NFT 应该如下所示 :
恭喜,您已成功创建、修改和部署您的第一个智能合约。铸造了你的第一个 NFT,并在 IPFS 上发布了你的图像!
点击链接进入提交相关信息即可。
点击链接领取 NFT。
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia