本文会详细讲解如何批量账号mint爱死机NFT以及原理。
因为无限mint已经不值手续费,故主要教学思路,无投资建议。
使用测试网模拟教学,小白用户可以无需任何Gas费用体验合约mint。
并无直接使用的脚本(需要脚本的可以去找一下用小狐狸直接mint,程序开源安全~)
官方爱死机NFT合约地址:
[https://etherscan.io/address/0xfd43d1da000558473822302e1d44d81da2e4cc0d#code]
首先合约是ERC1155,而不是常用NFT的ERC721合约,这两点有什么不同呢。ERC721也就是我们常说的NFT,非同质化代币,每一个代币都是独一无二的,可以有自己的属性特征等。而ERC1155则是既有非同质化代币也有同质化代币,每一个种类型的代币可以有与他相同的存在。具体举例说明,一个游戏中可以有很多种不同的装备,但是同样的装备也可以有很多件,那么这个场景就很适用于ERC1155。而爱死机的nft主要有9种,每一种可以有无数个,细心的同学会发现在opensea上面显示和购买的方式与其他绝大多数都会不一样,例如同一个nft会显示有多少人拥有,总量是多少等。因为是同质化的,每个人手上持有的相同的nft也是一样的,交易方式就有点像币圈的挂单吃单。

然后我们详细看一下mint的function,每一行我都配上了中文解析,可以发现并没有数量限制,但是有暂停功能,而且使用EIP1271,OpenZeppelin的SignatureChecker来检测签名,也就是如果我们能拿到官方的签名即可mint,无需去看视频。
function mint(
uint256 _category, ## 种类
bytes memory _data, ## 签名中的V,实际逻辑中并无使用。
bytes memory _signature ## 签名
) external nonReentrant whenNotPaused {
require(isSignatureValid(_category, _signature), "LDRT: Invalid signature"); ## 验证签名
require(_category >= 1, "LDRT: Invalid category. It is less than 1."); ## 验证输入的种类id要大于等于1
require(_category <= 9, "LDRT: Invalid category. It is greater than 9."); ## 验证输入的种类id要小于等于9
bytes32 hashAdrrCategory = keccak256(abi.encodePacked(msg.sender, _category));
bool hasMinted = categoriesMinted[hashAdrrCategory];
require(
!hasMinted,
"LDRT: Address already has token for that category."
); ##上面几行验证一个地址只能mint 1个同一个种类的
categoriesMinted[hashAdrrCategory] = true; ##存放这个地址已经mint过这个种类
// 1 is because it will mint 1 token for that category
_mint(msg.sender, _category, 1, _data); ## mint nft
}
先理解签名,相当于将你的地址和你要mint的nft的种类id打包成消息,然后将这个消息进行签名,签名需要官方的私钥签名,那我们肯定没有。这个时候就得去看正规途径是如何mint nft的,也就是看视频扫二维码怎么mint,一般经过抓包分析之后就可以伪造请求,我常用抓包软件charles。不过这次抓包是朋友直接发给我的。下次有空详细讲解一下抓包,无论是电脑手机还是其他硬件,很多Gamefi交互,刷交互等都用得上。直接贴获取签名的python代码。
def get_sign(address, category):
headers = {
'Authority': 'us-central1-ldr-prod.cloudfunctions.net',
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Origin': 'https://lovedeathandart.com',
'Referer': 'https://lovedeathandart.com/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'cross-site',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
}
json_data = {
'address': address,
'category': category,
}
response = requests.post('https://us-central1-ldr-prod.cloudfunctions.net/api/sign', headers=headers,
json=json_data)
print(response.json()["v"], response.json()["signature"])
return response.json()["v"], response.json()["signature"]
其实这个签名就是简单的输入了address和category即可拿到签名,爱死机官方并没有做其他鉴权或者限制,也就是任何一个用户都可以调用接口直接拿到签名。
昨天看到已经有网页端链接小狐狸mint的开源代码,对于小白用户来说已经很好用了,但是作为“科学家”任何东西肯定要掌握在自己手上,多钱包肯定批量直接mint更方便。这个时候就需要学会如何直接在代码里面调用合约。python可以直接配合brownie框架(需要学习),简单举例一行代码即可调用合约LDR=Contract.from_explorer("合约地址"),当然也可以填入abi的方式进行合约调用。这个时候如果有多个钱包也就是读出每个钱包,然后分别mint就行了,无任何上限,除非官方关闭获取签名接口或者暂停合约mint。
def mint_nft():
account = get_account()
for i in range(1,10):
data, sign = get_sign(str(account), str(i))
LDR = Contract.from_explorer("0x2818Fae15D09744c0Ec5B98DbE539428058891B4")
LDR.mint(str(i), data, sign, {"from": account})
print("mint over")
如果既不想看合约又不想写代码,就想单纯的体验下怎么直接从合约mint nft,而不是从官方网站mint,那么可以看下文如何免Gas mint。建议用新钱包空钱包操作~
我已经将相同的合约部署在了polygon testnet,并且去除了签名限制。(合约开源安全)所以可以直接在polygon测试网玩一玩。
1.首先领水龙头,也就是测试代币,输入自己的地址确认即可。
https://faucet.polygon.technology/

2.将自己的小狐狸钱包切换到polygon测试网,不会的话去chainlist添加,如下图右下角。这个时候你会发现钱包里面有matic代币。没有的话就多等等或者去水龙头在领一次。

3.去浏览器上面调用合约链接如下
https://mumbai.polygonscan.com/address/0x2818Fae15D09744c0Ec5B98DbE539428058891B4#code
找到Contract,点击Write,点击Connect to web3,链接小狐狸

找到mint,第一个参数就是1-9里面的种类,因为去掉了签名,所以第二和第三参数按照格式随便填,然后点击write,就可以发送消息。

4.去opensea测试网检查是否有nft,如果出现拥有LDR的nft即成功,没有图片是因为这个nft并没有设置url,也就是没有设置图片。

ps:我心中认为的是科学家是深度钻研技术的人,也就是科研方向。我自身只是个简单的build,并称不上科学家~取这个标题就是让感兴趣的大家一起来build。
watch to earn貌似也是个不错的思路,但是如何做到安全性上的保证是需要思考的。
持续分享更多有意思的小知识~求一波关注~
手把手教学|如何超简单的部署io.net(以及解决网络问题)
本文主要从技术角度详细讲解了如何部署io.net,以及如何解决各种问题。 项目地址如下,是否部署投资等DYOR~io.net | Decentralized GPU Ecosystem for AI Workloads - Save Up to 70%Power your AI workloads with io.net's intelligent stack: on-demand GPU clusters in 130+ countries, up to 70% cost savings vs. AWS/GCP, and flexible deployment options. Built for AI teams - deploy containers, Ray clusters, or bare metal today.https://io.net1. 注册,添加worker从上面官网点进去之后,注册登录 点击官网左上角,会出现一长列,点击worker,中间会出现链接新的worker。 按照你的机器选择对应的配置,一直到底下出现命令行,也就是核心的第5步和第6步。...
Nexus节点运行| 疑难杂症解决方案
最近看到很多朋友在折腾 Nexus,尤其是在使用 CLI 的过程中会遇到一些 BUG。为此,我针对官方脚本做了一些优化,提供了一键安装的解决方案,让你更稳定地挖 Nexus。 官方教程链接:Nexus Network CLI - 官方文档 官方教程主要面向有一定技术基础的用户自行探索。如果你想要更快速、简单地上手,请继续阅读下面的步骤。 核心问题与解决方案什么是 Prover ID?如何获取正确的 ID? 进入 Nexus Beta 网站 后,你可能会看到一个 Prover ID,但请注意,页面左下角显示的并不是完整的 Prover ID!正确获取方式: https://beta.nexus.xyz/ 进入 Nexus Beta 页面后,按下 F12 打开浏览器开发者工具。 查找名为 account 的请求(或相关输出)。 在返回的 JSON 数据中,找到 localid 字段,这个 localid 就是你的真正 proverid。 你会发现其中前半部分和网页显示的相同,大小写忽略即可。2. 使用 CLI 挖 Nexus 前提条件 准备一个 VPS(最低配置即可,国外主机都可以)...
一键在Ubuntu上运行Bitcoin全节点(BTC系列教程1)
现在经常需要btc全节点。很多人得开着电脑24小时不关机,属实很麻烦。 但是如果购买一个小主机,配上Ubuntu系统,24小时运行全节点。开启RPC之后,电脑随时都能连上使用。当然也可以做Atom索引等本文将会讲解如何搭建一个基于ubuntu系统的bitcoin全节点。 需求操作系统os: ubuntu20.04内存: 2GSSD: 1TB对于家用小服务器,我推荐买个N100的mini主机大概几百块钱+一块2tssd,总成本可能在1k左右 功率在10w左右,可以24小时不关机。一个linux设备代表能拥有什么呢: 各种好玩的docker服务,各种脚本如何安装BTC全节点使用root用户登陆上ubuntu之后,运行下面命令即可。wget -O bitcoin_node.sh https://pub-e3b4652c5d5f4c1b8fbfdff04685c330.r2.dev/bitcoin_node.sh && chmod +x bitcoin_node.sh && sudo ./bitcoin_node.sh 当然这个脚本也可以在wind...
web3 build
本文会详细讲解如何批量账号mint爱死机NFT以及原理。
因为无限mint已经不值手续费,故主要教学思路,无投资建议。
使用测试网模拟教学,小白用户可以无需任何Gas费用体验合约mint。
并无直接使用的脚本(需要脚本的可以去找一下用小狐狸直接mint,程序开源安全~)
官方爱死机NFT合约地址:
[https://etherscan.io/address/0xfd43d1da000558473822302e1d44d81da2e4cc0d#code]
首先合约是ERC1155,而不是常用NFT的ERC721合约,这两点有什么不同呢。ERC721也就是我们常说的NFT,非同质化代币,每一个代币都是独一无二的,可以有自己的属性特征等。而ERC1155则是既有非同质化代币也有同质化代币,每一个种类型的代币可以有与他相同的存在。具体举例说明,一个游戏中可以有很多种不同的装备,但是同样的装备也可以有很多件,那么这个场景就很适用于ERC1155。而爱死机的nft主要有9种,每一种可以有无数个,细心的同学会发现在opensea上面显示和购买的方式与其他绝大多数都会不一样,例如同一个nft会显示有多少人拥有,总量是多少等。因为是同质化的,每个人手上持有的相同的nft也是一样的,交易方式就有点像币圈的挂单吃单。

然后我们详细看一下mint的function,每一行我都配上了中文解析,可以发现并没有数量限制,但是有暂停功能,而且使用EIP1271,OpenZeppelin的SignatureChecker来检测签名,也就是如果我们能拿到官方的签名即可mint,无需去看视频。
function mint(
uint256 _category, ## 种类
bytes memory _data, ## 签名中的V,实际逻辑中并无使用。
bytes memory _signature ## 签名
) external nonReentrant whenNotPaused {
require(isSignatureValid(_category, _signature), "LDRT: Invalid signature"); ## 验证签名
require(_category >= 1, "LDRT: Invalid category. It is less than 1."); ## 验证输入的种类id要大于等于1
require(_category <= 9, "LDRT: Invalid category. It is greater than 9."); ## 验证输入的种类id要小于等于9
bytes32 hashAdrrCategory = keccak256(abi.encodePacked(msg.sender, _category));
bool hasMinted = categoriesMinted[hashAdrrCategory];
require(
!hasMinted,
"LDRT: Address already has token for that category."
); ##上面几行验证一个地址只能mint 1个同一个种类的
categoriesMinted[hashAdrrCategory] = true; ##存放这个地址已经mint过这个种类
// 1 is because it will mint 1 token for that category
_mint(msg.sender, _category, 1, _data); ## mint nft
}
先理解签名,相当于将你的地址和你要mint的nft的种类id打包成消息,然后将这个消息进行签名,签名需要官方的私钥签名,那我们肯定没有。这个时候就得去看正规途径是如何mint nft的,也就是看视频扫二维码怎么mint,一般经过抓包分析之后就可以伪造请求,我常用抓包软件charles。不过这次抓包是朋友直接发给我的。下次有空详细讲解一下抓包,无论是电脑手机还是其他硬件,很多Gamefi交互,刷交互等都用得上。直接贴获取签名的python代码。
def get_sign(address, category):
headers = {
'Authority': 'us-central1-ldr-prod.cloudfunctions.net',
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Origin': 'https://lovedeathandart.com',
'Referer': 'https://lovedeathandart.com/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'cross-site',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
}
json_data = {
'address': address,
'category': category,
}
response = requests.post('https://us-central1-ldr-prod.cloudfunctions.net/api/sign', headers=headers,
json=json_data)
print(response.json()["v"], response.json()["signature"])
return response.json()["v"], response.json()["signature"]
其实这个签名就是简单的输入了address和category即可拿到签名,爱死机官方并没有做其他鉴权或者限制,也就是任何一个用户都可以调用接口直接拿到签名。
昨天看到已经有网页端链接小狐狸mint的开源代码,对于小白用户来说已经很好用了,但是作为“科学家”任何东西肯定要掌握在自己手上,多钱包肯定批量直接mint更方便。这个时候就需要学会如何直接在代码里面调用合约。python可以直接配合brownie框架(需要学习),简单举例一行代码即可调用合约LDR=Contract.from_explorer("合约地址"),当然也可以填入abi的方式进行合约调用。这个时候如果有多个钱包也就是读出每个钱包,然后分别mint就行了,无任何上限,除非官方关闭获取签名接口或者暂停合约mint。
def mint_nft():
account = get_account()
for i in range(1,10):
data, sign = get_sign(str(account), str(i))
LDR = Contract.from_explorer("0x2818Fae15D09744c0Ec5B98DbE539428058891B4")
LDR.mint(str(i), data, sign, {"from": account})
print("mint over")
如果既不想看合约又不想写代码,就想单纯的体验下怎么直接从合约mint nft,而不是从官方网站mint,那么可以看下文如何免Gas mint。建议用新钱包空钱包操作~
我已经将相同的合约部署在了polygon testnet,并且去除了签名限制。(合约开源安全)所以可以直接在polygon测试网玩一玩。
1.首先领水龙头,也就是测试代币,输入自己的地址确认即可。
https://faucet.polygon.technology/

2.将自己的小狐狸钱包切换到polygon测试网,不会的话去chainlist添加,如下图右下角。这个时候你会发现钱包里面有matic代币。没有的话就多等等或者去水龙头在领一次。

3.去浏览器上面调用合约链接如下
https://mumbai.polygonscan.com/address/0x2818Fae15D09744c0Ec5B98DbE539428058891B4#code
找到Contract,点击Write,点击Connect to web3,链接小狐狸

找到mint,第一个参数就是1-9里面的种类,因为去掉了签名,所以第二和第三参数按照格式随便填,然后点击write,就可以发送消息。

4.去opensea测试网检查是否有nft,如果出现拥有LDR的nft即成功,没有图片是因为这个nft并没有设置url,也就是没有设置图片。

ps:我心中认为的是科学家是深度钻研技术的人,也就是科研方向。我自身只是个简单的build,并称不上科学家~取这个标题就是让感兴趣的大家一起来build。
watch to earn貌似也是个不错的思路,但是如何做到安全性上的保证是需要思考的。
持续分享更多有意思的小知识~求一波关注~
手把手教学|如何超简单的部署io.net(以及解决网络问题)
本文主要从技术角度详细讲解了如何部署io.net,以及如何解决各种问题。 项目地址如下,是否部署投资等DYOR~io.net | Decentralized GPU Ecosystem for AI Workloads - Save Up to 70%Power your AI workloads with io.net's intelligent stack: on-demand GPU clusters in 130+ countries, up to 70% cost savings vs. AWS/GCP, and flexible deployment options. Built for AI teams - deploy containers, Ray clusters, or bare metal today.https://io.net1. 注册,添加worker从上面官网点进去之后,注册登录 点击官网左上角,会出现一长列,点击worker,中间会出现链接新的worker。 按照你的机器选择对应的配置,一直到底下出现命令行,也就是核心的第5步和第6步。...
Nexus节点运行| 疑难杂症解决方案
最近看到很多朋友在折腾 Nexus,尤其是在使用 CLI 的过程中会遇到一些 BUG。为此,我针对官方脚本做了一些优化,提供了一键安装的解决方案,让你更稳定地挖 Nexus。 官方教程链接:Nexus Network CLI - 官方文档 官方教程主要面向有一定技术基础的用户自行探索。如果你想要更快速、简单地上手,请继续阅读下面的步骤。 核心问题与解决方案什么是 Prover ID?如何获取正确的 ID? 进入 Nexus Beta 网站 后,你可能会看到一个 Prover ID,但请注意,页面左下角显示的并不是完整的 Prover ID!正确获取方式: https://beta.nexus.xyz/ 进入 Nexus Beta 页面后,按下 F12 打开浏览器开发者工具。 查找名为 account 的请求(或相关输出)。 在返回的 JSON 数据中,找到 localid 字段,这个 localid 就是你的真正 proverid。 你会发现其中前半部分和网页显示的相同,大小写忽略即可。2. 使用 CLI 挖 Nexus 前提条件 准备一个 VPS(最低配置即可,国外主机都可以)...
一键在Ubuntu上运行Bitcoin全节点(BTC系列教程1)
现在经常需要btc全节点。很多人得开着电脑24小时不关机,属实很麻烦。 但是如果购买一个小主机,配上Ubuntu系统,24小时运行全节点。开启RPC之后,电脑随时都能连上使用。当然也可以做Atom索引等本文将会讲解如何搭建一个基于ubuntu系统的bitcoin全节点。 需求操作系统os: ubuntu20.04内存: 2GSSD: 1TB对于家用小服务器,我推荐买个N100的mini主机大概几百块钱+一块2tssd,总成本可能在1k左右 功率在10w左右,可以24小时不关机。一个linux设备代表能拥有什么呢: 各种好玩的docker服务,各种脚本如何安装BTC全节点使用root用户登陆上ubuntu之后,运行下面命令即可。wget -O bitcoin_node.sh https://pub-e3b4652c5d5f4c1b8fbfdff04685c330.r2.dev/bitcoin_node.sh && chmod +x bitcoin_node.sh && sudo ./bitcoin_node.sh 当然这个脚本也可以在wind...
Share Dialog
Share Dialog

Subscribe to Daniel

Subscribe to Daniel
>200 subscribers
>200 subscribers
No activity yet