# 跟着Alchemy边学边获取NFT

By [Robby](https://paragraph.com/@sheepswap) · 2022-09-14

---

**1.编写合约**

首先我们来到合约编写页面

[https://docs.openzeppelin.com/contracts/4.x/wizard](https://docs.openzeppelin.com/contracts/4.x/wizard)

![](https://storage.googleapis.com/papyrus_images/ac66f66aa8d5f48b9dfe1926b128f40b93bf5df73d773725a9f8d41f9bd762dc.png)

**2.将合约使用Remix修改和部署**

导入Remix后合约的结构如下：

![](https://storage.googleapis.com/papyrus_images/3eedee623c2a3b7127206429d1bd7321315ecfc1c5cf041a5fc8c99608b183b1.png)

我们需要修改如下几点，你们也可以直接将帝哥的代码覆盖你的函数即可：

1.该NFT是任何人都可以mint的，所以修改如下

      function safeMint(address to, string memory uri) public {
            require(_tokenIdCounter.current() <= MAX_SUPPLY, "I'm sorry we reached the cap");
            uint256 tokenId = _tokenIdCounter.current();
            _tokenIdCounter.increment();
            _safeMint(to, tokenId);
            _setTokenURI(tokenId, uri);
        }
    

2.修改NFT的供应总量

     uint256 MAX_SUPPLY = 100000; //将该代码添加在Counters.Counter private _tokenIdCounter下一行
    

**3.获取测试token**

我们去到下面的网站获取测试Token，同时需要大家去Alchemy注册一个账号

[rinkebyfaucet.com](https://rinkebyfaucet.com/)

**4.创建一个Alchemy的app**

1.首先我们去到Alchemy注册一个账户，同时新建一个app（需要选择以太坊生态和Rikney）

[www.alchemy.com](https://www.alchemy.com/)

查看我们的Key

![](https://storage.googleapis.com/papyrus_images/df1d51e78daa703dc85fdb3d145fa9557a97c1d1475de50666854e06f5dc3cd2.png)

**5.将 Alchemy Rinkeby 添加到 Metamask 钱包，信息如下**

*   **Network name:** Alchemy Rinkeby
    
*   **New RPC URL:** 你申请的app的地址，去上面的viewkey获取即可
    
*   **Chain ID:** 4
    
*   **Currency Symbol:** ETH
    
*   **Block Explorer:** [https://rinkeby.etherscan.io/](https://rinkeby.etherscan.io/)
    

**6.部署发布我们的合约**

部署合约

将出现一个 Metamask 弹出窗口，点击“签名”，然后继续支付 gas 费用。如果一切都按预期工作，10 秒后，应该会在 Deployed Contracts 下看到该合约：

0x027122fF7F9b1833914F513f07d2A3FB31D20eFD

已经部署完成合约

**7.上传我们的NFT元数据**

Pinata网站管理我们的元数据，我们只需要申请一个账号，会免费给我1g的存储空间。

[app.pinata.cloud](https://app.pinata.cloud/)

mint我们的NFT，在safeMint输入我们的钱包地址和刚才编写的uri（ipfs://\\<your\\\_metadata\\\_cid>）使用json的。

**8.查看我们的NFT**

我们去到OpenSea测试网站查看我们做的NFT

[testnets.opensea.io](https://testnets.opensea.io/zh-CN)

我们找到对应合约的NFT，现在我们看到的合约地址和我们刚才部署的合约地址是否对应上，现在还是盲盒，需要我们自己去操作下

**9.开盲盒**

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

---

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