# 估值102亿融资5.45亿的Alchemy 项目Road to Web3

By [B021](https://paragraph.com/@b021) · 2022-08-18

---

Alchemy是什么项目？
-------------

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领投。

step1 使用 OpenZeppelin 项目开发工具包 ERC721 智能合约。

1.  ERC721 NFT智能合约需要做的第一个项目是进入智能开发项目Zeppelin。
    

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

2.左上角的ERC721按钮，选择要使用的ERC标准类型，输入名称和符号：

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 的新选项卡。

1.  删除 17 的唯一所有者，否则只允许合约智能行部署合约的地址生成 NFT。
    

3.在第14行填入 uint256 MAX\_SUPPLY = 100000;

4.在第 19 行添加 require(\_tokenIdCounter.current() <= MAX\_SUPPLY, "Im sorry we reached the cap");

step3 创建一个免费的炼金术帐户 1.首先，到alchemy.com点击“登录”并创建一个新帐户：

2.进入Dashboard，点击create app。

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

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

step4 将 Alchemy Rinkeby 添加到 Metamask 钱包 1.点击添加网络。

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

3.获取Rinkeby ETH，[只需导航到rinkefaucet.com](http://xn--rinkefaucet-338rr3po06a440kmxzc.com)，然后通过Test将项链地址复制到文本，点击“Send Me ETH”。10-20秒后，会Rinkeby ETH出现在Metamask钱包中。

step 5 在 Rinkeby 测试网上编译和部署 NFT 智能合约 1.回到Remix，点击页面左侧的编译器菜单，选择0.8.4，勾选自动编译，然后点击“编译”按钮：

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 的图像，建议使用以下内容。

3.上传后继它并复制IPFS网关网址：

4.建代码文档，粘贴下面的JSON，将文件保存为“metadata.json”。注意将第三行的图像文本改成刚才的链接。

{ "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](http://Alchemy.com)", "image": "[https://ipfs.filebase.io/ipfs/bafybeihyvhgbcov2nmvbnveunoodokme5eb42uekrqowxdennt2qyeculm](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.回到文件库并上传metadata.json文件在我们上传图像的同一个存储桶中。

1.  最后，创建 CID 并复制它，在下一部分中需要它来制造 NFT 的令牌 URI：
    

step7 Mint Your Rinkeby NFT 1.返回Remix并在 Deploy & Run Transactions 中，进入“部署的合同”-然后单击菜单我们刚刚部署的位置的合同。复制刚才的）场地中。

ipfs:// 如上图，您的交易将创建一个 Metamask 弹出窗口，提示 gas 费用。 点击“确认”并继续铸造你的第一个 NFT！ 2.等待方法通过几个调用，为确保将您的地址复制并粘贴到 balanceOf 输入中，它显示有 1 个 NFT。 3.在tokenUri中插入“0”作为id参数，点击call，它应该显示你的tokenURI。 step8 在 OpenSea 上可视化您的 NFT 到testnets.opensea.io并使用您的 Metamask 钱包登录。然后点击您应该的个人资料，您会看到您新创建的 NFT。 2.如果图像尚不可见，请点击它，然后点击“刷新元数据”按钮。 有时 OpenSea 很难识别小时测试元数据 - 可能需要 6 次才能看到它。 然后，您的 NFT 应该变成： 恭喜，您已经成功创建、修改和部署了您的第一个智能合约。构建了你的第一个 NFT，并在 IPFS 上发布了你的图像！

---

*Originally published on [B021](https://paragraph.com/@b021/102-5-45-alchemy-road-to-web3)*
