Builds dapps on Monad blockchain. Use when deploying contracts, setting up frontends with viem/wagmi, or verifying contracts on Monad testnet or mainnet.
对于未涵盖的问题,请访问 https://docs.monad.xyz/llms.txt
| 网络 | 链 ID | RPC |
|---|---|---|
| 测试网 | 10143 | https://testnet-rpc.monad.xyz |
| 主网 |
文档:https://docs.monad.xyz
| 浏览器 | 测试网 | 主网 |
|---|---|---|
| Socialscan | https://monad-testnet.socialscan.io | https://monad.socialscan.io |
| MonadVision |
重要提示: 不要使用浏览器。直接使用 curl 调用这些 API。
水龙头(测试网资金):
bash
curl -X POST https://agents.devnads.com/v1/faucet \
-H Content-Type: application/json \
-d {chainId: 10143, address: 0xYOUR_ADDRESS}
返回:{txHash: 0x..., amount: 1000000000000000000, chain: Monad Testnet}
备用方案(官方水龙头): https://faucet.monad.xyz
如果代理水龙头失败,请让用户通过官方水龙头获取资金(不要自己使用浏览器)。
验证(所有浏览器):
始终优先使用验证 API。一次调用即可在所有 3 个浏览器(MonadVision、Socialscan、Monadscan)上完成验证。不要首选使用 forge verify-contract。
bash
cat out/
COMPILER_VERSION=$(jq -r .metadata | fromjson | .compiler.version out/
cat > /tmp/verify.json << EOF
{
chainId: 10143,
contractAddress: 0xYOURCONTRACTADDRESS,
contractName: src/MyContract.sol:MyContract,
compilerVersion: v${COMPILER_VERSION},
standardJsonInput: $STANDARD_INPUT,
foundryMetadata: $FOUNDRY_METADATA
}
EOF
curl -X POST https://agents.devnads.com/v1/verify \
-H Content-Type: application/json \
-d @/tmp/verify.json
带构造函数参数: 添加 constructorArgs(ABI 编码,不带 0x 前缀):
bash
ARGS=$(cast abi-encode constructor(string,string,uint256) MyToken MTK 1000000000000000000000000)
ARGSNOPREFIX=${ARGS#0x}
手动验证备用方案(如果 API 失败):
bash
forge verify-contract
--verifier sourcify \
--verifier-url https://sourcify-api-monad.blockvision.org/
对代理至关重要: 如果为用户生成了钱包,必须持久化保存以供将来使用。
生成新钱包时:
存储选项:
为什么这很重要: 用户需要访问其钱包以:
使用 forge script 进行部署:
bash
forge script script/Deploy.s.sol:DeployScript \
--rpc-url https://testnet-rpc.monad.xyz \
--private-key $PRIVATE_KEY \
--broadcast
部署脚本模板:
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import forge-std/Script.sol;
import ../src/MyContract.sol;
contract DeployScript is Script {
function run() external {
vm.startBroadcast();
MyContract contract = new MyContract();
console.log(合约部署地址:, address(contract));
vm.stopBroadcast();
}
}
始终设置 evmVersion: prague。需要 Solidity 0.8.27+。
Foundry(foundry.toml):
toml
[profile.default]
evm_version = prague
solc_version = 0.8.28
不存在的标志(不要使用):
部署 - 使用 forge script,而非 forge create:
forge create --broadcast 存在 bug 且经常被忽略。请改用 forge script。
bash
forge script script/Deploy.s.sol:DeployScript \
--rpc-url https://testnet-rpc.monad.xyz \
--private-key $PRIVATE_KEY \
--broadcast
部署脚本不得硬编码地址:
solidity
// ✅ 正确 - 从 --private-key 标志读取私钥
function run() external {
vm.startBroadcast();
new MyContract();
vm.stopBroadcast();
}
// ❌ 错误 - 硬编码地址,导致No associated wallet错误
function run() external {
vm.startBroadcast(0x1234...);
}
从 viem/chains 导入。不要定义自定义链:
ts
import { monadTestnet } from viem/chains;
与 wagmi 一起使用:
ts
import { createConfig, http } from wagmi
import { monadTestnet } from viem/chains
const config = createConfig({
chains: [monadTestnet],
transports: {
[monadTestnet.id]: http()
}
})
1. 创建项目:
bash
forge init my-token
cd my-token
2. 配置 foundry.toml:
toml
[profile.default]
src = src
out = out
libs = [lib]
evm_version = prague
solc_version = 0.8.28
3. 创建合约 src/MyToken.sol:
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import @openzeppelin/contracts/token/ERC20/ERC20.sol;
contract MyToken is ERC20 {
constructor(uint256 initialSupply) ERC20(MyToken, MTK) {
_mint(msg.sender, initialSupply);
}
}
4. 安装依赖:
bash
forge install OpenZeppelin/openzeppelin-contracts --no-commit
5. 创建部署脚本 script/Deploy.s.sol:
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
import forge-std/Script.sol;
import ../src/MyToken.sol;
contract DeployScript is Script {
function run() external {
vm.startBroadcast();
MyToken token = new MyToken(1000000 10*18);
console.log(代币部署地址:, address(token));
vm.stopBroadcast();
}
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 monad-development-1776371127 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 monad-development-1776371127 技能
skillhub install monad-development-1776371127
文件大小: 3.61 KB | 发布时间: 2026-4-17 13:59