一、环境准备

1.注意:需合理上网

2.准备素材:准备一套多个属性元素的不一样的图层素材,
比如10张背景图、10张face图、10张眼睛图层、10张头发图层等,每张图特性不一样,像素大小一样
,比如500*500,背景透明,这样就可以随机组合1万+张nft图片;

素材样例下载地址:https://pan.baidu.com/s/1l9hjeZbn0Lmwbzc5qUQqgw
提取码: f6ks

3.浏览器插件钱包metamask安装以太测试网配置rinkeby, 参考 https://chainlist.org/zh

4.领取测试网以太币 https://faucet.rinkeby.io/

5.本教程提供两种方式,一种是平台网站无代码方式,一种是开源项目代码方式

1.1 平台网站无代码方式生成nft图片

推荐使用mintables

  1. mintables
    地址:https://www.mintables.club/projects
    特点:免费、用户体验较好、性能好

  2. nft-generator.art
    地址:https://nft-generator.art/
    特点:专业、用户体验好、100张内免费但有水印

  3. autominter
    地址:https://www.autominter.com/projects
    特点:免费、用户体验较差、性能较差

1.2 开源项目代码生成nft图片

hashlips_art_engine

代码地址:https://github.com/HashLips/hashlips_art_engine

#下载代码并安装依赖

git clone https://github.com/HashLips/hashlips_art_engine.gitcd hashlips_art_engine yarn install

npm install

#自行调整src/config.js layerConfigurations配置参数
#执行命令自动生成nft图片

node index.js

#更新 IPFS 的 baseUri 和描述

npm run update_info

1.3 批量上传到ipfs网络

安装ipfs官方提供的上传工具ipfs-desktop
下载地址https://github.com/ipfs/ipfs-desktop/releases

批量导入上一步生成的NFT图片文件夹

复制导入后生成的CID,修改上一步代码里的baseUri
#更新 IPFS 的 baseUri 和描述npm run update_info

检查代码里的图片文件夹对应的json文件是否已调整baseUri

批量导入json文件夹到ipfs中

二、 部署智能合约到以太坊测试网

  1. 打开在线智能合约编辑器Remix 地址:https://remix.ethereum.org/

  2. 新建智能合约空文件NFT.sol,把模板代码复制粘贴这个文件,模板代码地址:https://github.com/HashLips/solidity_smart_contracts/blob/main/contracts/NFT/NFT.sol

  3. 编译页面选择与代码匹配的编译器版本,选择Auto compile,evm version选择byzantium,点编译按钮,若有错误需按提示修改;

  4. 部署页面environment选项选择Injected Web3,弹出小狐狸链接框,确认好是测试网的测试账号,点确认链接;

  5. CONTRACT选择NFT,DEPLOY输入名称和标识,输入上一步上传到ipfs对应json的cid地址,点击transact按钮,弹出小狐狸链接框,点击确认;

  6. 部署成功后部署页面下方会生成合约地址

  7. 执行mint方法铸造一个nft;

三、OpenSea测试地址批量导入NFT图片

  1. 访问OpenSea测试地址 https://testnets.opensea.io/

  2. 连接metamask以太测试网rinkeby账户,确定跟上一步部署合约的测试账户一致

  3. 选择账户图标->My Collections->三个点->import an existing -> Live an a testnet

  4. 选择Rinkeby,输入上一步部署合约返回的地址

  5. 点击submit,此时NFT图片被批量导入到OpenSea测试地址

  6. 后续可以继续售卖等操作

详细操作参考
https://www.youtube.com/watch?v=DXDVw_oMmJw&list=PLA5SpUvai6VPg55qAGoWLmcPiGcCfTugG&index=3