Pre:
看到0xmonkey开源头像拼图,觉得还不错,模仿一个。
效果图:
开源头像拼图网站:
Opensea:
素材:
下载token图标:
图片来源:
下载top10的token的图标,用来做眼睛的素材
procreate编辑:
将图标插入ipad里的procreate
中进行编辑
编辑完,导出图层png到mac
png->svg:
通过在线网站将png
格式的图片转换成svg
格式
SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics)。其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。
最后再编辑一下svg
文件里眼睛素材的坐标,使得眼睛素材位置对得上
前端:
基于vue-color-avatar前端框架。
修改素材:
src/components/Configurator.vue
控制选择素材的控件
前端右边选择栏:可选插件里加入/src/assets/widgets/eyes/new.svg
src/enums/index.ts
做相应配置、src/utils/dynamic-data.ts
做相应配置
工具脚本:
用脚本批量生成图片:
-
前端代码生成
-
selenium生成 √
自动生成描述文件:
处理成 符合格式的描述文件
再自动下载图片,按递增的序号命名一下,使得描述文件和图片一一匹配。
合约:
deploy:
1 | constructor( |
部署合约时,设置好构造函数的参数:
设置name_
和symbol_
:
1 | ERC721A("CryptoYoung", "CryptoYoung"...) |
-
string memory _initURI
(资源所在文件夹路径) : “https://raw.githubusercontent.com/jerrychan807/crypto-young-nft/main/resource/” -
uint256 _maxBatchSize
(一次最多可mint多少个): 2 -
uint256 _collectionSize
(总供应量) : 1000 -
uint256 _maxreserveAmount
(应该是预留量) : 100
polygon主网合约地址:https://polygonscan.com/address/0xc1e8efe8d62b855c34009013a8d354d093f3e7f1
验证源码:
直接用hardhat插件验证
1 | yarn hardhat verify --contract contracts/CryptoYoung.sol:CryptoYoung --constructor-args arguments.ts --network polygon $YourContractAddress |
开始mint:
合约所有者通过调用合约,Set Status(1)
,打开mint开关
然后用户就可以free mint了
合约导入opensea:
合约导入opensea:
-
测试网:
https://testnets.opensea.io/get-listed/step-two
-
主网:
https://opensea.io/get-listed/step-two
然后就可以在opensea
,看到mint后的对应图片了。如果图片没正常展示,可点击刷新图片的按钮。
Todo List:
素材:
前端:
合约:
opensea:
github:
Summary:
我们所说的 NFT ,说到底是一个以太坊的地址上的一个支持 NFT 协议(也就是 ERC721)的智能合约,它支持 tokenURI 等十几个标准函数。
给定一个 Tokend 的 ID,它可以告诉你一个区块链以外的地址,这个地址里面给出了图像,名称等等信息。
我们购买一个 NFT,说到底是购买了某个合约地址里面的某个 TokenID
或者说,就是在那张大大的表上,这个合约地址上的那个 tokenID 这一行的 owner 属性,记录自己的钱包地址。
除此以外的信息,包括上面这张猴子的头像,其实仅仅如包装纸上的图案一样,仅仅是一个赠品。