NFT公开铸造狙击工具
一个命令行工具,用于在OpenSea的SeaDrop上狙击公开NFT铸造,支持以太坊、Base和Robinhood Chain。
它仅从链上数据构建铸造交易——价格、费用接收者和每钱包限额均直接来自SeaDrop合约。这意味着:
- 无需OpenSea账户、登录或访问令牌。
- 没有API速率限制导致错过铸造。
- 更快。 每笔交易都在阶段开启前完成签名和序列化,因此在精确的开始时间,剩下的工作只是将字节写入网络。
多钱包:粘贴任意数量的私钥,它们将并行发送。
环境要求
- Node.js 18或更高版本 — 使用
node --version检查。如果没有,请从nodejs.org获取。 - 一个在目标链上有ETH的钱包。
第一步 — 安装
逐行运行以下命令,每行后按回车:
git clone https://github.com/morsyxbt/nft-public-mint.git
cd nft-public-mint
npm install
npm run build
在运行 npm install 之前,检查你的提示符是否以 nft-public-mint 结尾——如果 cd 没有生效,之后所有命令都会失败。
然后确认构建成功:
npm start -- --help
安装错误
Set-Location : A positional parameter cannot be found(Windows PowerShell)
两个命令被粘贴到同一行——你会看到类似 cd nft-public-mintnpm install 的内容。请逐行运行。
Could not read package.json / Missing script: build
你不在正确的文件夹中。先运行 cd nft-public-mint。
npm 或 git 未被识别
安装Node.js 18+和Git,然后重新打开终端。
第二步 — 配置(可选但推荐)
cp .env.example .env
打开 .env 并为你将铸造的链添加一个私有RPC URL,例如:
RPC_URL_BASE=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY
免费的Alchemy密钥只需两分钟,是决定你在竞争激烈的铸造中能否获胜的最大因素。你也可以在提示符处直接粘贴它——该工具无需任何 .env 也能工作,会回退到公共节点。
切勿将私钥放入
.env。 你在运行时将它们粘贴到CLI中。它们仅在该次运行期间保存在内存中,从不写入磁盘。
第三步 — 运行
npm start
向导会问你七个问题:
| 步骤 | 需要什么 |
|---|---|
| 1. 私钥 | 每行粘贴一个,输入时隐藏。空行结束。每个密钥会通过其钱包地址反馈给你,以便检查是否粘贴正确。 |
| 2. 链 | Ethereum、Base或Robinhood。 |
| 3. 数量 | 每个钱包铸造多少个NFT。 |
| 4. NFT链接 | OpenSea集合链接、物品链接、slug或原始的 0x 合约地址。合约地址或物品链接无需API密钥即可使用;集合slug通常可以在未认证的情况下完成查询。 |
| 5. RPC | 粘贴完整URL,或仅粘贴你的Alchemy密钥,它会自动扩展。留空则使用 .env 或公共节点。 |
| 6. Gas | 上限和小费。提示符上方会显示实时基础费用。 |
| 7. 时机 | 等待阶段开启,或如果已经开启则立即发送。 |
然后它会显示摘要并询问 Fire?(是否发送?)。在你输入 y 之前不会发送任何内容。
第四步 — 设置好并离开
如果掉落稍后开启,选择 “等待阶段开启”。它会预签名所有内容,保持状态,并在精确的开始时间发送——无需监督。Fire? 确认在等待之前出现,因此铸造时不会有第二次提示。
如果让它持续运行,有两件事需要做对:
- 阻止计算机睡眠。 睡眠会挂起进程,倒计时也会冻结。
- 保持终端窗口打开。 关闭它会终止运行。
理解Gas
三个不同的数字,将它们混淆是失去铸造机会的最常见原因:
| 术语 | 是什么 | 由谁设定 |
|---|---|---|
| 基础费用 | 网络价格。被销毁。 | 链 |
| 优先费(小费) | 额外支付给区块生产者 | 你 |
| 最高费用 | 你愿意容忍的上限 | 你 |
你支付基础费用 + 小费。 最高费用只是一个上限——如果基础费用为0.006 gwei,你的小费为0.05,那么无论你的上限是2还是200,你支付的都是0.056 gwei。
但上限不是免费的。 在节点接受你的交易之前,它会检查你的钱包是否拥有 gasLimit × maxFee + 铸造价格。因此,钱包余额不足时,高上限会被直接拒绝,即使实际成本很小。该工具会在发送前检查这一点,并告诉你余额能支持的最高上限。
一次SeaDrop铸造大约消耗 135,000 gas(数量为1时)。
它保护你免受什么影响
以下每一项都在广播之前进行检查:
- 上限低于基础费用 — 会被每个节点拒绝。无法输入。
- 小费高于上限 — 根据EIP-1559无效。无法输入。
- 钱包无法覆盖预扣费用 — 拒绝发送并告诉你能够承受的上限。
- 在阶段开启前发送 — SeaDrop会以
NotActive回滚并消耗gas。当阶段稍后开启时,不会提供"立即发送"选项。 - 错误的网络 — 每个RPC都会检查其链ID;任何错误链上的RPC都会被丢弃,而不是盲目发送。
- 数量超过每钱包上限 — 在发送前警告你。
如果交易被所有端点拒绝,它会明确说明,而不是等待一个永远不会存在的回执。
支持的链
| 链 | 链ID | 浏览器 |
|---|---|---|
| Ethereum | 1 | etherscan.io |
| Base | 8453 | basescan.org |
| Robinhood Chain | 4663 | robinhoodchain.blockscout.com |
要添加其他链,在 src/chains.ts 中追加一个条目——无需其他代码更改。
安全性
- 私钥在运行时粘贴,保存在内存中,从不写入磁盘或传输到任何地方,除了本地签名的交易。
.env、wallets/和*.key都被git忽略。- 使用只存入计划花费金额的专用热钱包。
- 如果要验证签名和发送的究竟是什么,请阅读
src/local-mint.ts——它大约150行。
白名单 / 先到先得(FCFS)铸造
此处不支持,这并非疏忽。白名单阶段使用SeaDrop的 mintSigned(),该函数需要OpenSea为每个钱包生成的签名——这确实需要经过认证的OpenSea会话。无法仅从链上数据构建,而这是本工具的核心理念。
许可证
MIT