227 lines
8.1 KiB
Markdown
227 lines
8.1 KiB
Markdown
|
|
# Monad 区块链开发助手
|
|||
|
|
|
|||
|
|
`区块链` `智能合约` `Monad` `DeFi` `Foundry` `AI辅助开发`
|
|||
|
|
|
|||
|
|
# Monad Wingman
|
|||
|
|
|
|||
|
|
一款以 Agent Skill 形式构建的 Monad 区块链开发全能导师与指南。涵盖使用 Foundry + Scaffold-Monad 工具链进行智能合约开发、DeFi 协议集成,以及针对 Monad 并行执行 EVM 兼容 L1 的安全最佳实践。
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
**在 AI 辅助下从零构建 Monad dApp:**
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 创建新项目目录
|
|||
|
|
mkdir my-monad-project
|
|||
|
|
cd my-monad-project
|
|||
|
|
|
|||
|
|
# 2. 安装 Monad Wingman skill
|
|||
|
|
npx skills add monad-wingman
|
|||
|
|
|
|||
|
|
# 3. 用 Cursor(或其他支持 AI 的编辑器)打开
|
|||
|
|
cursor .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**然后直接告诉 AI 你想构建什么:**
|
|||
|
|
|
|||
|
|
> "帮我在 Monad 上构建一个质押合约"
|
|||
|
|
|
|||
|
|
> "创建一个带买卖功能的代币"
|
|||
|
|
|
|||
|
|
> "构建一个 NFT 系列并部署到 Monad 测试网"
|
|||
|
|
|
|||
|
|
Monad Wingman 将会:
|
|||
|
|
- 搭建 Foundry 或 Scaffold-Monad 项目
|
|||
|
|
- 为 Monad 进行配置(prague EVM、--legacy 标志、正确的链 ID)
|
|||
|
|
- 提醒你关键的注意事项(gas 上限计费、代币精度、重入攻击等)
|
|||
|
|
- 指导安全最佳实践
|
|||
|
|
- 附带正确的验证步骤将合约部署到 Monad 测试网
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 什么是 Monad Wingman?
|
|||
|
|
|
|||
|
|
Monad Wingman 是一套知识库与提示词系统,帮助 AI 代理协助开发者在 Monad 上进行开发。内容涵盖:
|
|||
|
|
|
|||
|
|
- **智能合约挑战**:12 个学习模块(NFT、质押、DEX、借贷、预言机等)
|
|||
|
|
- **Foundry 工具链**:以 forge 脚本、Anvil 测试、Monad 部署为核心的主要工作流
|
|||
|
|
- **Scaffold-Monad**:含 React/Next.js 前端的全栈 dApp 脚手架
|
|||
|
|
- **DeFi 协议**:Monad 上的 Uniswap V3、Euler、Morpho、Kuru、Fastlane、Pyth 使用模式
|
|||
|
|
- **ERC 标准**:ERC-20、721、1155、4626 的完整指南
|
|||
|
|
- **Monad 架构**:并行执行、MonadBFT、gas 上限计费、储备余额
|
|||
|
|
- **安全性**:关键注意事项(通用 + Monad 专属)、历史漏洞案例、上线前检查清单
|
|||
|
|
|
|||
|
|
## 安装
|
|||
|
|
|
|||
|
|
### 通过 skills.sh 安装(推荐)
|
|||
|
|
```bash
|
|||
|
|
npx skills add monad-wingman
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
兼容 Cursor、Claude Code、Codex、OpenCode 及其他 AI 编程助手。
|
|||
|
|
|
|||
|
|
### 手动安装
|
|||
|
|
|
|||
|
|
**Cursor:**
|
|||
|
|
将 `.cursorrules` 复制到项目根目录,或添加到 Cursor 全局规则中。
|
|||
|
|
|
|||
|
|
**Claude Code:**
|
|||
|
|
在项目说明中引用 `CLAUDE.md` 文件。
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
monad-wingman/
|
|||
|
|
├── skills/
|
|||
|
|
│ └── monad-wingman/ # skills.sh 兼容包
|
|||
|
|
│ ├── SKILL.md # 含 frontmatter 的 Skill 定义
|
|||
|
|
│ ├── AGENTS.md # 完整编译后的指令
|
|||
|
|
│ ├── metadata.json # Skill 元数据
|
|||
|
|
│ ├── README.md # Skill 文档
|
|||
|
|
│ ├── scripts/ # 辅助脚本
|
|||
|
|
│ │ ├── init-project.sh
|
|||
|
|
│ │ └── check-gotchas.sh
|
|||
|
|
│ └── references/ # 核心知识文件
|
|||
|
|
├── knowledge/
|
|||
|
|
│ ├── challenges/ # 12 个智能合约挑战模块
|
|||
|
|
│ ├── protocols/ # DeFi 协议文档(Uniswap、Euler、Morpho、Kuru 等)
|
|||
|
|
│ ├── standards/ # ERC 标准
|
|||
|
|
│ ├── foundations/ # Monad 基础、Solidity、预言机、生态系统
|
|||
|
|
│ └── gotchas/ # 安全知识
|
|||
|
|
├── tools/
|
|||
|
|
│ ├── scaffold-eth/ # Scaffold-Monad 文档
|
|||
|
|
│ ├── deployment/ # 部署模式
|
|||
|
|
│ ├── testing/ # 前端测试
|
|||
|
|
│ └── security/ # 安全工具
|
|||
|
|
├── prompts/ # AI 代理提示词(构建、教学、审查、调试)
|
|||
|
|
├── data/
|
|||
|
|
│ └── addresses/ # Monad 上的代币、协议、鲸鱼地址
|
|||
|
|
├── AGENTS.md # skills/monad-wingman/AGENTS.md 的软链接
|
|||
|
|
├── skill.json # Skill 清单
|
|||
|
|
├── .cursorrules # Cursor IDE 集成
|
|||
|
|
└── CLAUDE.md # Claude Code 集成
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 核心概念
|
|||
|
|
|
|||
|
|
### 最重要的概念
|
|||
|
|
|
|||
|
|
**链上没有任何事情是自动发生的。**
|
|||
|
|
|
|||
|
|
智能合约无法自动执行。对于任何"需要发生"的函数:
|
|||
|
|
1. 让**任何人**都可以调用(而非仅限管理员)
|
|||
|
|
2. 给调用者一个**理由**(利润、奖励、自身利益)
|
|||
|
|
3. 确保激励**足以**覆盖 gas 费用并有盈余
|
|||
|
|
|
|||
|
|
Wingman 始终会问:*"谁来调用这个函数?他们为何要支付 gas?"*
|
|||
|
|
|
|||
|
|
### 关键注意事项
|
|||
|
|
|
|||
|
|
每位 Monad 开发者必须了解:
|
|||
|
|
|
|||
|
|
1. **代币精度各异**:USDC = 6 位,WBTC = 8 位,大多数 = 18 位
|
|||
|
|
2. **需要 Approve 模式**:合约在调用 transferFrom 前需要授权
|
|||
|
|
3. **重入攻击**:始终使用检查-效果-交互模式 + ReentrancyGuard
|
|||
|
|
4. **预言机操纵**:永远不要使用 DEX 现货价格
|
|||
|
|
5. **无浮点数**:使用基点(500/10000 = 5%)
|
|||
|
|
6. **Gas 上限计费(Monad)**:按 gas_limit 收费,而非实际用量——请设置严格上限!
|
|||
|
|
7. **储备余额(Monad)**:EIP-7702 委托 EOA 的余额不能低于 10 MON
|
|||
|
|
8. **--legacy 标志(Monad)**:在 Monad 上使用 forge/cast 时始终加上 `--legacy`
|
|||
|
|
|
|||
|
|
### Monad 链配置
|
|||
|
|
|
|||
|
|
| 网络 | 链 ID | RPC |
|
|||
|
|
|------|-------|-----|
|
|||
|
|
| 主网 | 143 | https://rpc.monad.xyz |
|
|||
|
|
| 测试网(默认) | 10143 | https://testnet-rpc.monad.xyz |
|
|||
|
|
| 本地(Anvil) | 31337 | http://localhost:8545 |
|
|||
|
|
|
|||
|
|
- **原生代币**:MON(18 位精度)
|
|||
|
|
- **EVM 版本**:prague
|
|||
|
|
- **Solidity**:推荐 0.8.28
|
|||
|
|
- **合约最大体积**:128KB
|
|||
|
|
|
|||
|
|
### 智能合约挑战
|
|||
|
|
|
|||
|
|
| 挑战 | 概念 |
|
|||
|
|
|------|------|
|
|||
|
|
| 简单 NFT | ERC-721、铸造、元数据 |
|
|||
|
|
| 去中心化质押 | 协调机制、截止日期、托管 |
|
|||
|
|
| 代币售卖机 | ERC-20 授权模式 |
|
|||
|
|
| 骰子游戏 | 随机数漏洞 |
|
|||
|
|
| DEX | AMM、恒定乘积公式 |
|
|||
|
|
| 预言机 | 价格数据源、防操纵 |
|
|||
|
|
| 借贷 | 抵押机制、清算 |
|
|||
|
|
| 稳定币 | 锚定机制 |
|
|||
|
|
| 预测市场 | 结果结算 |
|
|||
|
|
| ZK 投票 | 隐私保护治理 |
|
|||
|
|
| 多签 | 门限签名 |
|
|||
|
|
| SVG NFT | 链上生成艺术 |
|
|||
|
|
|
|||
|
|
## 使用示例
|
|||
|
|
|
|||
|
|
### 构建模式
|
|||
|
|
- "帮我在 Monad 上构建一个带买卖功能的代币"
|
|||
|
|
- "搭建一个带奖励的质押合约"
|
|||
|
|
- "用 Scaffold-Monad 创建一个 NFT 铸造页面"
|
|||
|
|
|
|||
|
|
### 教学模式
|
|||
|
|
- "Monad 上的并行执行是如何工作的?"
|
|||
|
|
- "解释 AMM 中的恒定乘积公式"
|
|||
|
|
- "借贷协议有哪些安全注意事项?"
|
|||
|
|
|
|||
|
|
### 代码审查模式
|
|||
|
|
- "检查这个提款函数是否存在漏洞"
|
|||
|
|
- "检查这个 vault 合约是否存在通胀攻击风险"
|
|||
|
|
- "审计这个 Monad 上的预言机集成"
|
|||
|
|
|
|||
|
|
### 调试模式
|
|||
|
|
- "为什么我的交易在 Monad 测试网上回滚了?"
|
|||
|
|
- "我遇到了 'transaction type not supported' 错误——怎么解决?"
|
|||
|
|
- "调试这个 gas 不足的问题"
|
|||
|
|
|
|||
|
|
## Monad 上的 DeFi 协议
|
|||
|
|
|
|||
|
|
- **Uniswap V3** —— AMM,集中流动性
|
|||
|
|
- **Euler** —— 模块化借贷协议
|
|||
|
|
- **Morpho** —— 借贷优化
|
|||
|
|
- **Kuru** —— Monad 原生订单簿 DEX
|
|||
|
|
- **Fastlane** —— MEV 基础设施
|
|||
|
|
- **Chainlink / Pyth** —— 预言机与价格数据源
|
|||
|
|
- **Kintsu / Magma** —— 流动性质押(shMON、gMON)
|
|||
|
|
- **LayerZero / Wormhole** —— 跨链桥
|
|||
|
|
|
|||
|
|
## 贡献
|
|||
|
|
|
|||
|
|
添加新内容:
|
|||
|
|
1. 将 Markdown 文件添加到对应目录
|
|||
|
|
2. 遵循现有格式(代码示例、安全说明)
|
|||
|
|
3. 如添加新功能,更新 skill.json
|
|||
|
|
4. 与 AI 代理测试以确保内容清晰
|
|||
|
|
|
|||
|
|
## 资源
|
|||
|
|
|
|||
|
|
- [Monad 文档](https://docs.monad.xyz)
|
|||
|
|
- [Monad LLM 文档](https://docs.monad.xyz/llms.txt)
|
|||
|
|
- [Scaffold-Monad Foundry](https://github.com/monad-developers/scaffold-monad-foundry)
|
|||
|
|
- [MonadVision 浏览器](https://monadvision.com)
|
|||
|
|
- [Monadscan 浏览器](https://monadscan.com)
|
|||
|
|
- [Monad 水龙头](https://faucet.monad.xyz)
|
|||
|
|
- [OpenZeppelin](https://openzeppelin.com/)
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
MIT 许可证——可自由用于学习和开发。
|
|||
|
|
|
|||
|
|
## 致谢
|
|||
|
|
|
|||
|
|
为 Monad 开发者社区而构建。
|
|||
|
|
|
|||
|
|
派生自 [BuidlGuidl](https://buidlguidl.com/) 的 [Ethereum Wingman](https://github.com/BuidlGuidl/ethereum-wingman)。原版 Ethereum Wingman 提供了基础知识库结构和智能合约挑战体系。Monad Wingman 在此基础上针对 Monad 生态系统进行了适配与扩展,新增了 Monad 专属工具链、注意事项、部署工作流及 DeFi 协议文档。
|
|||
|
|
|
|||
|
|
整合了来自以下来源的知识:
|
|||
|
|
- [Monad 文档](https://docs.monad.xyz)
|
|||
|
|
- [BuidlGuidl / Scaffold-ETH](https://buidlguidl.com/)
|
|||
|
|
- [OpenZeppelin](https://openzeppelin.com/)
|
|||
|
|
- [Chainlink](https://chain.link/)
|
|||
|
|
- [Pyth Network](https://pyth.network/)
|