内容
<div align="center">
# 🤖 nft-mint-agent
**竞争性多钱包NFT自动铸造代理**,适用于OpenSea/SeaDrop和直接合约。低延迟快速铸造、定时投放、浏览器备用方案和列表功能 — 可用作 **MCP服务器**、**AI代理技能**(Hermes / Claude)或 **独立CLI**。
[](https://github.com/dhasap/nft-mint-agent/releases)
[](LICENSE)
[](https://github.com/dhasap/nft-mint-agent/actions/workflows/ci.yml)
[](tests)
[](SECURITY.md)
[](https://www.typescriptlang.org/)
[](https://docs.ethers.org/v6/)
[](docs/MCP.md)
[](https://nodejs.org/)
</div>
> **热点/FCFS/最大铸造量使用 `fast-mint.mjs`** (原始EIP-1559,多RPC扇出,RBF)。OpenSea UI/API数据仅用于发现 — 链上SeaDrop数据优先执行。
## 目录
- [为什么存在](#为什么存在)
- [功能](#功能)
- [快速开始](#快速开始)
- [三种运行方式](#三种运行方式)
- [竞争性快速铸造](#竞争性快速铸造)
- [工具(16)](#工具-16)
- [配置](#配置)
- [支持的链](#支持的链)
- [架构](#架构)
- [安全](#安全) · [贡献](#贡献) · [许可证](#许可证)
## 为什么存在
热点NFT投放几秒钟内售罄。浏览器点击、调度器和每个动作的代理往返 **太慢**。该工具包预热所有内容,并广播预签名的原始交易到多个RPC,如果交易错过区块,则自动替换费用 — 这样您就可以 **按时** 铸造。
## 功能
- ⚡ **低延迟快速铸造** — 并行预签名、保持活动连接的套接字预热、 **多RPC扇出** 原始广播、 **RBF自动重新广播**、RPC时钟校准、模式缩放优先级费用
- 👛 **多钱包并行铸造** — 同时从多个钱包铸造
- 📅 **定时投放** — 持久的作业,重启后仍然存在
- 🌊 **OpenSea/SeaDrop** 公共铸造 + 只读发现
- 🏷️ **列表** — EIP-712 签名的Seaport订单(明确确认后)
- 🖥️ **浏览器铸造** — 连接钱包的网站的钱包注入
- 🔌 **MCP服务器** — 任意MCP主机的类型化工具(Claude Desktop/Code,Cursor,自定义代理)
- 🔗 **多链** — Ethereum,Polygon,Arbitrum,Optimism,Base,Zora,Blast
- 🛡️ **安全优先** — 强化浏览器签名者(阻止 `approval`/`transfer` 调用,每个交易价值上限,合约允许列表,固定的 `ethers` + 子资源完整性),`MAX_MINT_PRICE_ETH` 在 **每个** 铸造路径上强制执行,显式确认后签名/广播,不受信任的元数据,**0 个已知依赖漏洞**
## 快速开始
```bash
git clone https://github.com/dhasap/nft-mint-agent.git
cd nft-mint-agent
npm install
cp .env.example .env # 添加RPC_URL + Burner WALLET_PRIVATE_KEYS
npm run build
```
```bash
# 检查钱包
node runner.mjs check_wallets '{}'
# 检测合约
node runner.mjs detect_contract '{"contract_address":"0xED5AF388653567Af2F388E6224dC7C4b3241C544"}'
# 健康检查
node runner.mjs get_skill_health '{}'
```
👉 **复制粘贴配方:** [`docs/QUICKSTART.md`](docs/QUICKSTART.md)
## 三种运行方式
| 界面 | 命令 | 最适合 |
|---|---|---|
| **MCP服务器** | `npm run mcp` | 来自MCP主机的可靠、类型化的工具调用。参见 [`docs/MCP.md`](docs/MCP.md) |
| **CLI运行器** | `node runner.mjs <tool> '<json>'` | 脚本编写和手动使用;验证参数 |
| **快速铸造CLI** | `node fast-mint.mjs ...` | 竞争性/热点/FCFS投放(最低延迟) |
> CLI运行器验证必需的参数和类型,返回结构化错误,您可以纠正 — 不再出现参数名称错误导致的无声失败。
## 竞争性快速铸造
对于热点、FCFS、最大铸造量或OpenSea投放,几秒钟内售罄,**不要** 浏览器点击或 `schedule_mint`。预先读取,然后使用原始交易路径广播:
```bash
# 只读预飞行
node fast-mint.mjs --url "https://opensea.io/collection/<slug>/overview" --time auto --qty max --wallets 0,1 --status
# 竞争性广播
node fast-mint.mjs --url "https://opensea.io/collection/<slug>/overview" \
--time auto --qty max --wallets 0,1 \
--gas-mode aggressive --priority-gwei 8 --max-fee-gwei 150 --early-ms 750 \
--broadcast-rpcs "https://rpc2...,https://rpc3..." \
--rbf-after-ms 13000 --rbf-max 4
```
| 标志 | 目的 | 提示 |
|---|---|---|
| `--priority-gwei` | 小费 — 驱动区块排序 | 默认5(激进);8-15适用于非常热门的投放 |
| `--max-fee-gwei` | maxFee的硬上限 | 在拥挤的主网上提高 |
| `--max-price-eth` | 每单位铸造价格的硬上限(超过时中止) | 默认 `MAX_MINT_PRICE_ETH` 或0.5 |
| `--broadcast-rpcs` | 额外的扇出RPC端点 | 添加2-3个 **不同的** 高级RPC — 最大的收益 |
| `--rbf-after-ms` | 如果未挖掘,则重新广播 + 提升 | ~13000 ETH · ~3000-4000在L2上 |
| `--rbf-max` / `--rbf-bump` | 最大提升 / 因子 | 4 / 1.18 (+18%) |
| `--early-ms` | 广播领先于开始 | 750;过早回退 `NotActive` |
**规则:** live `getPublicDrop()` 优先于OpenSea UI/API;广播时重新计算 `value = mintPrice * qty`;钱包必须提前承担 `mintPrice*qty + gasLimit*maxFeePerGas`;签名/广播/列表需要显式用户确认。
## 工具(16)
**信息和检测:** `parse_mint_link` · `detect_contract` · `check_wallets` · `get_mint_schedule` · `get_mint_status` · `scrape_contract_from_website` · `get_skill_health`
**执行:** `mint_nft` · `browser_mint` · `schedule_mint` · `list_scheduled_mints` · `cancel_scheduled_mint` · `cancel_pending_tx`
**列表:** `approve_seaport` · `list_nft` · `batch_list_nfts`
完整模式和示例: [`SKILL.md`](SKILL.md)。对于代理,从 [`AGENTS.md`](AGENTS.md) 开始。
## 配置
```env
RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
CHAIN=ethereum
WALLET_PRIVATE_KEYS=0xkey1,0xkey2,0xkey3 # 仅限烧毁钱包
GAS_MODE=aggressive # eco | normal | aggressive | custom
MAX_MINT_PRICE_ETH=0.5
OPENSEA_API_KEY=
DRY_RUN=false
# 快速铸造调优
BROADCAST_RPC_URLS= # 分隔的额外RPC用于扇出
FAST_MINT_RBF_AFTER_MS=13000
FAST_MINT_RBF_MAX=4
```
参见 [.env.example](.env.example) 获取完整列表。
## 支持的链
| 链 | ID | 状态 |
|---|---|---|
| Ethereum | 1 | 完整 |
| Polygon | 137 | 完整 |
| Arbitrum | 42161 | 完整 |
| Optimism | 10 | 完整 |
| Base | 8453 | 完整 |
| Zora | 7777777 | 部分(不同协议) |
| Blast | 81457 | 完整 |
## 架构
```
用户链接
│ parse_mint_link → 检测类型
▼
┌──────────────────────────────────────────────┐
│ 热点/FCFS/最大OpenSea/SeaDrop │
│ → fast-mint.mjs(预签名原始交易,扇出, │
│ RBF,时钟同步) │
├──────────────────────────────────────────────┤
│ 标准mint(uint256) → mint_nft(并行) │
├──────────────────────────────────────────────┤
│ 连接钱包/服务器签名 → browser_mint │
├──────────────────────────────────────────────┤
│ 非竞争性未来投放 → schedule_mint │
└──────────────────────────────────────────────┘
▼
approve_seaport → list_nft (价格确认后)
```
```
nft-mint-agent/
├── src/ # TypeScript工具,铸造逻辑,调度器,gas预言机,钱包,列表
├── runner.mjs # 验证的CLI运行器
├── mcp-server.mjs # MCP(模型上下文协议)服务器
├── fast-mint.mjs # 竞争性原始交易路径
├── docs/ # QUICKSTART.md,MCP.md
├── references/ # 操作参考和安全检查清单
└── SKILL.md # 代理“大脑”(决策树+规则)
```
## 技术栈
ethers.js v6 · TypeScript 5.5 · Axios · Seaport v1.6(EIP-712) · `@modelcontextprotocol/sdk`
## 文档
一套小而精的文档 — 每个文件都有一个任务:
| 文件 | 受众 | 目的 |
|---|---|---|
| [`README.md`](README.md) | 人类 | 概述,快速开始,功能(此文件) |
| [`AGENTS.md`](AGENTS.md) | AI代理 | 简洁的路由器/决策树 — 代理入口点 |
| [`SKILL.md`](SKILL.md) | AI代理 | **权威** 定义:工具模式,完整规则 |
| [`docs/QUICKSTART.md`](docs/QUICKSTART.md) | 两者 | 复制粘贴命令配方 |
| [`docs/MCP.md`](docs/MCP.md) | 两者 | MCP服务器设置和工具/路由拆分 |
| [`SECURITY.md`](SECURITY.md) · [`CHANGELOG.md`](CHANGELOG.md) | 两者 | 安全策略 · 版本历史 |
| [`references/`](references/) | 维护者 | 深入的运营笔记和模式 |
> **没有特定于平台的代理文件** — `AGENTS.md` + `SKILL.md` 适用于任何主机(Hermes,Claude Code,Cursor,自定义MCP)。
## 安全
该软件处理 **私钥** 并广播 **真实交易**。使用烧毁钱包,切勿提交 `.env`,并阅读 [`SECURITY.md`](SECURITY.md)。私下报告漏洞。
**内置强化(v3.4.0):**
- **强化浏览器签名者** — 注入的 `window.ethereum` 拒绝资产移动调用
(`setApprovalForAll`、`approve`、`transfer`、`transferFrom`、`safeTransferFrom`、`increaseAllowance`
`permit`),强制执行每个交易的 **价值上限**,支持 **合约允许列表**,并默认禁用类型化数据(订单)签名。恶意或受损的铸造页面无法耗尽钱包。
- **固定依赖 + SRI** — `ethers` 从具有子资源完整性哈希的固定CDN加载,因此篡改的CDN文件被拒绝。
- **在所有地方强制执行`MAX_MINT_PRICE_ETH`** — 代理/MCP路径、`DirectMinter`和竞争性 `fast-mint.mjs`(在广播前重新检查链上价格)。
- **更安全的密钥生成** — `generate-wallets` 永远不会将密钥打印到stdout,写入 `0600` 文件,并可以发出 **加密JSON密钥库**(通过参数或 `WALLET_ENCRYPT_PASSWORD`)。
- **0 个依赖漏洞** (`npm audit`) 和 **43 个通过测试** (包括专用安全套件)。
## 贡献
欢迎PR — 参见 [`CONTRIBUTING.md`](CONTRIBUTING.md) 和 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)。更改记录在 [`CHANGELOG.md`](CHANGELOG.md)。
## 许可证
[MIT](LICENSE) © dhasap
---
<div align="center">
`nft` · `minting` · `nft-bot` · `mint-bot` · `opensea` · `seadrop` · `seaport` · `multi-wallet` · `fast-mint` · `erc721` · `erc1155` · `evm` · `ethers` · `mcp` · `model-context-protocol` · `ai-agent` · `hermes-agent` · `claude` · `multi-chain` · `web3`
</div>