用途:从想法到上线的端到端指南,适合从零开始构建应用时优先获取。
主要能力:提供清单式流程——规划架构与目录结构、判断哪些组件上链、脚手架项目、初始化 git、构建与部署智能合约、部署后验证、按需初始化索引器、用已部署地址构建前端、应用已知坑修复、创建 .monskills 元数据并提交。
目录约定:web/ 前端(无偏好时用 Next.js 与 shadcn),contracts/ 合约(无偏好时用 Foundry),indexer/ 可选 HyperIndex 索引器,在合约部署并验证后通过 indexer/ 技能创建。
上链判断:涉及无信任所有权、交换、可组合性、抗审查、永久承诺时上链;用户资料、搜索过滤、媒体元数据、频繁变更的业务逻辑、不涉及价值转移或信任的内容留在链下。
合约与部署:不要从零重写 ERC20、ERC721 等,尽量基于 OpenZeppelin 合约构建,安装命令为 forge install --no-git OpenZeppelin/openzeppelin-contracts。部署需先获取 wallet/ 技能,再通过 Alchemy Agent Wallet 会话(经规范 CreateX 工厂的 CREATE2)部署,且必须在构建前端之前完成。
验证:始终优先使用验证 API,一次调用在 MonadVision、Socialscan、Monadscan 三个浏览器验证;forge verify-contract 仅作回退。需准备 standardJsonInput 与 foundryMetadata,chainId 为 10143(测试网)或 143(主网),可选 constructorArgs(ABI 编码且不带 0x 前缀)。
前端:使用 wagmi v3,钱包连接与认证用 Para(嵌入式 MPC 钱包,支持邮箱/通行密钥/社交登录及外部钱包连接),走 wallet-integration 技能流程,不要运行 para create。尽可能使用 useSendTransactionSync,以利用 Monad 的 eth_sendRawTransactionSync 在同一调用中拿到回执。
已知坑:create-next-app 生成的 tsconfig target 为 ES2017,viem/wagmi 使用 BigInt 字面量会触发 TS2737,需立即改为 ES2020,可用 jq 命令修改。
元数据:最终提交前在项目根创建可见的 .monskills 文件,主网写 built-with=monskills 与 chain=monad,测试网写 chain=monad-testnet;目标网络不明确时先询问用户。
限制:资料未提供收费、价格、平台支持范围或效果保证等信息。