# 估值102亿Alchemy 项目第一周NFT教程

By [shawn93755](https://paragraph.com/@shawn93755) · 2022-08-20

---

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数量极少，估计由于任务难度大，很多小伙伴直接放弃，这样的项目若是空投，绝对是大毛。

手把手第一周教程开始：如何使用 Alchemy 开发 NFT 智能合约（ERC721）
-------------------------------------------

官方原版[教程链接](https://docs.alchemy.com/docs/how-to-develop-an-nft-smart-contract-erc721-with-alchemy)，其中有长达50分钟的视频教程还有大篇幅的文字教程。我按照我的做法给大家一个易于操作的图文教程。

### step1 使用 OpenZeppelin 合约向导开发 ERC721 智能合约。

1.开发 ERC721 NFT 智能合约需要做的第一件事是 [**进入 Open Zeppelin 智能合约向导页面。**](https://docs.openzeppelin.com/contracts/4.x/wizard)

进入页面后，您将看到以下编辑器：

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);
        }
    }
    

### step2 使用 REMIX IDE 修改和部署ERC721 合约

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");

### step3 创建一个免费的炼金术帐户

1.首先，到 [alchemy.com](https://alchemy.com/?a=cn-road-to-week-one) 点击“登录”并创建一个新帐户：

2.进入Dashboard，点击create app。

3.如图，名字和描述可以随意输入，最下面选择以太链的Rinkeby，点击Create app。

4.创建完成后，回到仪表板，**单击“VIEW KEY”按钮** ，然后复制 HTTPS URL：

### step4 将 Alchemy Rinkeby 添加到 Metamask 钱包

1.点击添加网络。

2.在其中填写 Rinkeby 网络和 RPC URL 信息并保存。

3.获取 Rinkeby Test ETH ,只需导航到 [rinkebyfaucet.com](https://rinkebyfaucet.com/) ，将钱包地址复制到文本栏中，然后点击“Send Me ETH”。10-20 秒后，会看到 Rinkeby ETH 出现在 Metamask 钱包中。

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

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 下看到该合约：

### step6 在 IPFS 上创建和上传元数据

1.首先，到 `filebase.com`创建一个新帐户。

登录后，单击左侧菜单上的存储桶按钮，然后创建一个新存储桶(自己取名字，重名不行)：

2.导航到存储桶，单击 **上传按钮** ，然后上传您要用于 NFT 的图像， [建议使用以下内容](https://ipfs.filebase.io/ipfs/bafybeihyvhgbcov2nmvbnveunoodokme5eb42uekrqowxdennt2qyeculm) 。

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：

### step7 Mint Your Rinkeby NFT

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。

### step8 在 OpenSea 上可视化您的 NFT

1.到 [testnets.opensea.io](https://testnets.opensea.io/) 并 **使用您的 Metamask 钱包登录** 。 然后单击您的个人资料图片，您应该会在那里看到您新铸造的 NFT。

2.如果图像尚不可见，请单击它，然后单击“刷新元数据”按钮。

3.有时 OpenSea 很难识别测试网元数据 - 并且可能需要长达 6 小时才能看到它。 一段 [时间后，您的 NFT 应该如下所示](https://testnets.opensea.io/assets/mumbai/0x5a411430964664412e69cff1134759f6bb57c5d7/1) ：

**恭喜，您已成功创建、修改和部署您的第一个智能合约。 铸造了你的第一个 NFT，并在 IPFS 上发布了你的图像！** 🔥

### step9 提交任务

点击[链接](https://alchemyapi.typeform.com/roadtoweekone?typeform-source=docs.alchemy.com)进入提交相关信息即可。

### step10 领取NFT

点击[链接](https://mintkudos.xyz/claim/583)领取NFT。

---

*Originally published on [shawn93755](https://paragraph.com/@shawn93755/102-alchemy-nft)*
