如何在区块链写一个批量mint NFT的合约

我们应该如何自己做一个 批量mint NFT的合约,节省gas,也防止别人抽税。

批量mint的好处

- 节省人力,如果项目只能一次Mint一张的话,不需要那么费事费力手动去点

- 节省gas,同mint 100张nft, 批量合约mint,大概能省个 8~15%的gas费用 (有的可能会更多,不一定的,不过用eip-1167的话倒是比较省)

- 可以收费,既然批量mint合约可以省时省gas,就可以开源给别人用,并且在代码里面,写明收 x%的费用,或者mint 20张收1张 - 熟悉代码,有的时候能找到一些bug

大概路径

路径超级简陋图如下:

对于批量mint NFT,要结合具体的项目合约来使用,有的合约有限制的时候是不可以进行批量mint的

有些是可以,如之前的 $xen $clips $ferc 都是可以做到批量mint,特别是 $ferc 由于合约的问题,当时mint一个会吃税,但是有批量mint合约的话,只会吃税1次,但是得到了100 不要特别迷信批量mint就会省钱,

因为

- 成本:部署合约 + 调用合约成本

- 可能存在的收益:节省gas + 收税开源给别人使用

基础前提

得有一定的solidity基础,如果没有solidity基础的话,可以先去学或者直接先看一下熟悉一下也行

然后对于以后有些nft或者airdrop的领取的话,自己都可以去看项目代码看能否使用批量

如果对于抓不准的,也欢迎大家发我,然后我看看能不能写批量,毕竟我也想实践中成长

具体代码撰写思路

- 若项目合约不存在地址校验,则批量mint只需要连接一次项目合约,遍历循环即可

- 若项目合约只存在 msg.sender 的判断,如 msg.sender 一天只能mint一次,则此时我们只需要在合约中创建多个子合约去调用即可

- 若项目合约将 msg.sender 为合约账户给ban掉, 如 (msg.sender !=tx.origin) 则此时我们不能做批量合约

具体代码链接

- 直接循环mint:

https://github.com/balckecn/solidityTemplate/blob/main/batch/batchMint.sol

- 创建子合约mint:

https://github.com/balckecn/solidityTemplate/blob/main/batch/batchMintBySubContract.sol

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

微信号已复制,请打开微信添加咨询详情!
-->