web3-devkit-cli
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWeb3 DevKit CLI
Web3 DevKit CLI
Skill by ara.so — Devtools Skills collection.
Web3 DevKit is an open-source CLI for EVM and Solana developers. It helps bootstrap projects, generate smart contracts, manage wallets, test RPCs, deploy contracts, and monitor on-chain activity across multiple blockchain networks.
由ara.so提供的技能——开发工具技能合集。
Web3 DevKit 是一款面向EVM和Solana开发者的开源CLI工具。它可帮助开发者快速搭建项目、生成智能合约、管理钱包、测试RPC、部署合约,并监控多区块链网络上的链上活动。
Installation
安装
bash
npm install -g web3-devkit-cliOr run locally in a cloned repository:
bash
git clone https://github.com/jazzband/web3-devkit-cli.git
cd web3-devkit-cli
npm install
npm run build
npm link # Makes 'web3' command available globallyRun without linking:
bash
npm run web3 -- <command>bash
npm install -g web3-devkit-cli或者在克隆的仓库中本地运行:
bash
git clone https://github.com/jazzband/web3-devkit-cli.git
cd web3-devkit-cli
npm install
npm run build
npm link # 使'web3'命令全局可用不执行link直接运行:
bash
npm run web3 -- <command>Core Commands
核心命令
Project Bootstrap
项目快速搭建
Initialize new blockchain projects with curated templates:
bash
undefined使用精选模板初始化新的区块链项目:
bash
undefinedInteractive mode
交互式模式
web3 init
web3 init
Specify chain type
指定链类型
web3 init evm # EVM templates (Foundry, Hardhat)
web3 init solana # Solana templates (Anchor)
web3 init fullstack # Full-stack with frontend + backend
**Available templates:**
- `evm-foundry` - Foundry (Solidity, Forge, Cast)
- `evm-hardhat` - Hardhat + TypeScript
- `solana-anchor` - Anchor program workspace
- `nextjs-wagmi` - Next.js + wagmi (EVM frontend)
- `nextjs-solana-wallet` - Next.js + Solana wallet adapter
- `fullstack-evm` - Foundry contracts + Next.js + API
- `fullstack-solana` - Anchor + Next.js + APIweb3 init evm # EVM模板(Foundry、Hardhat)
web3 init solana # Solana模板(Anchor)
web3 init fullstack # 全栈项目(前端 + 后端)
**可用模板:**
- `evm-foundry` - Foundry(Solidity、Forge、Cast)
- `evm-hardhat` - Hardhat + TypeScript
- `solana-anchor` - Anchor程序工作区
- `nextjs-wagmi` - Next.js + wagmi(EVM前端)
- `nextjs-solana-wallet` - Next.js + Solana钱包适配器
- `fullstack-evm` - Foundry合约 + Next.js + API
- `fullstack-solana` - Anchor + Next.js + APIContract Generation
合约生成
Generate smart contracts and programs from boilerplate:
bash
undefined从模板生成智能合约和程序:
bash
undefinedGenerate ERC20 token
生成ERC20代币
web3 generate token -c evm -v erc20 -n MyToken -y
web3 generate token -c evm -v erc20 -n MyToken -y
Generate ERC721 NFT
生成ERC721 NFT
web3 generate nft -c evm -v erc721 -n MyNFT -o ./contracts -y
web3 generate nft -c evm -v erc721 -n MyNFT -o ./contracts -y
Generate Solana escrow program
生成Solana托管程序
web3 generate vault -c solana -v escrow-anchor -n MyEscrow -y
**Generation categories:**
- `token` - ERC20, SPL tokens
- `nft` - ERC721, ERC1155, Metaplex NFTs
- `staking` - Staking contracts/programs
- `vault` - Escrow, vaults, safes
- `prediction-market` - Prediction market logic
**Flags:**
- `-c, --chain` - Chain type: `evm` or `solana`
- `-v, --variant` - Template variant (e.g., `erc20`, `erc721`)
- `-n, --name` - Contract/program name
- `-o, --output` - Output directory (default: `./contracts`)
- `-y, --yes` - Skip confirmation promptsweb3 generate vault -c solana -v escrow-anchor -n MyEscrow -y
**生成分类:**
- `token` - ERC20、SPL代币
- `nft` - ERC721、ERC1155、Metaplex NFT
- `staking` - 质押合约/程序
- `vault` - 托管、保险库、保险箱
- `prediction-market` - 预测市场逻辑
**参数:**
- `-c, --chain` - 链类型:`evm` 或 `solana`
- `-v, --variant` - 模板变体(如:`erc20`、`erc721`)
- `-n, --name` - 合约/程序名称
- `-o, --output` - 输出目录(默认:`./contracts`)
- `-y, --yes` - 跳过确认提示Wallet Management
钱包管理
Create wallets, check balances, and inspect tokens:
bash
undefined创建钱包、查询余额、查看代币:
bash
undefinedCreate new wallet
创建新钱包
web3 wallet create --chain evm
web3 wallet create --chain solana
web3 wallet create --chain evm
web3 wallet create --chain solana
Check native balance
查询原生代币余额
web3 wallet balance -n base -a 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
web3 wallet balance -n base -a 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
List token balances
列出代币余额
web3 wallet tokens -n ethereum -a 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
**Supported networks:**
- **EVM:** ethereum, base, arbitrum, polygon, bsc, avalanche
- **Solana:** mainnet-beta, devnet, testnetweb3 wallet tokens -n ethereum -a 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
**支持的网络:**
- **EVM:** ethereum、base、arbitrum、polygon、bsc、avalanche
- **Solana:** mainnet-beta、devnet、testnetRPC & Network Testing
RPC与网络测试
Validate RPC connectivity and check network status:
bash
undefined验证RPC连接并检查网络状态:
bash
undefinedTest RPC endpoint
测试RPC端点
web3 rpc test -n base
web3 rpc test -n arbitrum
web3 rpc test -n solana
web3 rpc test -n base
web3 rpc test -n arbitrum
web3 rpc test -n solana
Check network health
检查网络健康状态
web3 network check -n ethereum
undefinedweb3 network check -n ethereum
undefinedContract Deployment
合约部署
Deploy contracts and programs with gas estimation:
bash
undefined部署合约和程序并估算Gas费用:
bash
undefinedEstimate deployment gas (EVM)
估算部署Gas费用(EVM)
web3 deploy evm -n base --estimate
web3 deploy evm -n base --estimate
Deploy to network (EVM)
部署到网络(EVM)
web3 deploy evm -n base -y
web3 deploy evm -n base -y
Deploy Solana program
部署Solana程序
web3 deploy solana -n devnet -y
web3 deploy solana -n devnet -y
View deployment history
查看部署历史
web3 deploy history
web3 deploy history
Verify contract on explorer
在浏览器上验证合约
web3 verify -n base -a 0xContractAddress -c MyToken
Deployments are stored in `.web3-devkit/deployments/` with network, address, and timestamp.web3 verify -n base -a 0xContractAddress -c MyToken
部署记录存储在`.web3-devkit/deployments/`目录中,包含网络、地址和时间戳信息。Event Monitoring
事件监控
Monitor on-chain activity in real-time:
bash
undefined实时监控链上活动:
bash
undefinedMonitor contract events
监控合约事件
web3 monitor contract -a 0xContractAddress -e Transfer -n base
web3 monitor contract -a 0xContractAddress -e Transfer -n base
Monitor wallet transactions
监控钱包交易
web3 monitor wallet -a 0xYourWallet -n ethereum
web3 monitor wallet -a 0xYourWallet -n ethereum
Monitor specific token for wallet
监控钱包的特定代币
web3 monitor token -a 0xTokenAddress -w 0xWalletAddress -n base
undefinedweb3 monitor token -a 0xTokenAddress -w 0xWalletAddress -n base
undefinedFrontend Integration
前端集成
Add wallet providers and chain configurations to Next.js projects:
bash
undefined为Next.js项目添加钱包提供商和链配置:
bash
undefinedAdd wagmi (EVM)
添加wagmi(EVM)
web3 add wagmi -y
web3 add wagmi -y
Add RainbowKit
添加RainbowKit
web3 add rainbowkit -y
web3 add rainbowkit -y
Add WalletConnect
添加WalletConnect
web3 add wallet-connect -y
web3 add wallet-connect -y
Add Viem
添加Viem
web3 add viem -y
web3 add viem -y
Add Solana wallet adapter
添加Solana钱包适配器
web3 add solana-wallet -y
undefinedweb3 add solana-wallet -y
undefinedConfiguration Management
配置管理
Persist project defaults to skip repetitive flags:
bash
undefined保存项目默认配置以重复使用:
bash
undefinedInitialize config
初始化配置
web3 config init
web3 config init
Get configuration value
获取配置值
web3 config get defaultChain
web3 config get defaultChain
Set configuration value
设置配置值
web3 config set rpc.base https://mainnet.base.org
web3 config set defaultChain evm
web3 config set framework foundry
Configuration is stored in `.web3-devkit/config.json`:
```json
{
"defaultChain": "evm",
"framework": "foundry",
"rpc": {
"base": "https://mainnet.base.org",
"ethereum": "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
},
"walletType": "local"
}web3 config set rpc.base https://mainnet.base.org
web3 config set defaultChain evm
web3 config set framework foundry
配置存储在`.web3-devkit/config.json`中:
```json
{
"defaultChain": "evm",
"framework": "foundry",
"rpc": {
"base": "https://mainnet.base.org",
"ethereum": "https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}"
},
"walletType": "local"
}Common Workflows
常见工作流
Start a New EVM Project
启动新的EVM项目
bash
undefinedbash
undefinedInitialize project
初始化项目
web3 init evm-foundry
web3 init evm-foundry
Generate ERC20 token
生成ERC20代币
cd my-project
web3 generate token -c evm -v erc20 -n MyToken -y
cd my-project
web3 generate token -c evm -v erc20 -n MyToken -y
Set default network
设置默认网络
web3 config set defaultChain evm
web3 config set rpc.base ${BASE_RPC_URL}
web3 config set defaultChain evm
web3 config set rpc.base ${BASE_RPC_URL}
Check RPC connectivity
检查RPC连接
web3 rpc test -n base
web3 rpc test -n base
Deploy contract
部署合约
web3 deploy evm -n base -y
web3 deploy evm -n base -y
Monitor token transfers
监控代币转账
web3 monitor contract -a 0xDeployedTokenAddress -e Transfer -n base
undefinedweb3 monitor contract -a 0xDeployedTokenAddress -e Transfer -n base
undefinedStart a Solana Project
启动Solana项目
bash
undefinedbash
undefinedInitialize Anchor project
初始化Anchor项目
web3 init solana-anchor
web3 init solana-anchor
Generate escrow program
生成托管程序
cd my-solana-project
web3 generate vault -c solana -v escrow-anchor -n MyEscrow -y
cd my-solana-project
web3 generate vault -c solana -v escrow-anchor -n MyEscrow -y
Create Solana wallet
创建Solana钱包
web3 wallet create --chain solana
web3 wallet create --chain solana
Check wallet balance
查询钱包余额
web3 wallet balance -n devnet -a <SOLANA_WALLET_ADDRESS>
web3 wallet balance -n devnet -a <SOLANA_WALLET_ADDRESS>
Deploy program
部署程序
web3 deploy solana -n devnet -y
undefinedweb3 deploy solana -n devnet -y
undefinedFull-Stack dApp with Frontend
带前端的全栈dApp
bash
undefinedbash
undefinedInitialize full-stack project
初始化全栈项目
web3 init fullstack-evm
web3 init fullstack-evm
Generate NFT contract
生成NFT合约
cd my-fullstack-dapp
web3 generate nft -c evm -v erc721 -n MyNFT -y
cd my-fullstack-dapp
web3 generate nft -c evm -v erc721 -n MyNFT -y
Add wagmi integration to frontend
为前端添加wagmi集成
cd frontend
web3 add wagmi -y
web3 add rainbowkit -y
cd frontend
web3 add wagmi -y
web3 add rainbowkit -y
Configure network
配置网络
cd ..
web3 config set rpc.base ${BASE_RPC_URL}
cd ..
web3 config set rpc.base ${BASE_RPC_URL}
Deploy and verify
部署并验证
web3 deploy evm -n base -y
web3 verify -n base -a 0xContractAddress -c MyNFT
undefinedweb3 deploy evm -n base -y
web3 verify -n base -a 0xContractAddress -c MyNFT
undefinedWorking with Environment Variables
环境变量使用
Always use environment variables for sensitive data:
bash
undefined始终使用环境变量存储敏感数据:
bash
undefined.env file
.env文件
PRIVATE_KEY=${PRIVATE_KEY}
ALCHEMY_API_KEY=${ALCHEMY_API_KEY}
ETHERSCAN_API_KEY=${ETHERSCAN_API_KEY}
BASE_RPC_URL=https://mainnet.base.org
SOLANA_RPC_URL=https://api.devnet.solana.com
Load environment variables before running commands:
```bash
source .env
web3 deploy evm -n base -yOr inline:
bash
BASE_RPC_URL=${BASE_RPC_URL} web3 rpc test -n basePRIVATE_KEY=${PRIVATE_KEY}
ALCHEMY_API_KEY=${ALCHEMY_API_KEY}
ETHERSCAN_API_KEY=${ETHERSCAN_API_KEY}
BASE_RPC_URL=https://mainnet.base.org
SOLANA_RPC_URL=https://api.devnet.solana.com
运行命令前加载环境变量:
```bash
source .env
web3 deploy evm -n base -y或者直接在命令中使用:
bash
BASE_RPC_URL=${BASE_RPC_URL} web3 rpc test -n baseTypeScript Integration Examples
TypeScript集成示例
Using Generated ERC20 Contract
使用生成的ERC20合约
After generating an ERC20 token with :
web3 generate token -c evm -v erc20 -n MyToken -ytypescript
// contracts/MyToken.sol is generated
// Example interaction script
import { createPublicClient, createWalletClient, http } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount(`0x${process.env.PRIVATE_KEY}`);
const publicClient = createPublicClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
});
const walletClient = createWalletClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
account,
});
// Read token balance
const balance = await publicClient.readContract({
address: '0xTokenAddress',
abi: MyTokenABI,
functionName: 'balanceOf',
args: [account.address],
});
console.log('Balance:', balance);
// Transfer tokens
const hash = await walletClient.writeContract({
address: '0xTokenAddress',
abi: MyTokenABI,
functionName: 'transfer',
args: ['0xRecipient', 1000000000000000000n],
});
console.log('Transaction hash:', hash);使用生成ERC20代币后:
web3 generate token -c evm -v erc20 -n MyToken -ytypescript
// contracts/MyToken.sol已生成
// 交互脚本示例
import { createPublicClient, createWalletClient, http } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount(`0x${process.env.PRIVATE_KEY}`);
const publicClient = createPublicClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
});
const walletClient = createWalletClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
account,
});
// 读取代币余额
const balance = await publicClient.readContract({
address: '0xTokenAddress',
abi: MyTokenABI,
functionName: 'balanceOf',
args: [account.address],
});
console.log('余额:', balance);
// 转账代币
const hash = await walletClient.writeContract({
address: '0xTokenAddress',
abi: MyTokenABI,
functionName: 'transfer',
args: ['0xRecipient', 1000000000000000000n],
});
console.log('交易哈希:', hash);Monitoring Events Programmatically
程序化监控事件
typescript
import { createPublicClient, http, parseAbiItem } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
});
// Watch for Transfer events
const unwatch = client.watchEvent({
address: '0xTokenAddress',
event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),
onLogs: (logs) => {
logs.forEach((log) => {
console.log('Transfer detected:', {
from: log.args.from,
to: log.args.to,
value: log.args.value,
});
});
},
});
// Stop watching after 1 hour
setTimeout(() => unwatch(), 3600000);typescript
import { createPublicClient, http, parseAbiItem } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({
chain: base,
transport: http(process.env.BASE_RPC_URL),
});
// 监听Transfer事件
const unwatch = client.watchEvent({
address: '0xTokenAddress',
event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),
onLogs: (logs) => {
logs.forEach((log) => {
console.log('检测到转账:', {
from: log.args.from,
to: log.args.to,
value: log.args.value,
});
});
},
});
// 1小时后停止监听
setTimeout(() => unwatch(), 3600000);Custom Deployment Script
自定义部署脚本
typescript
import { execSync } from 'child_process';
import fs from 'fs';
import path from 'path';
interface DeploymentRecord {
network: string;
address: string;
timestamp: string;
deployer: string;
}
async function deployContract(network: string): Promise<void> {
console.log(`Deploying to ${network}...`);
// Run web3-devkit deploy
const output = execSync(`web3 deploy evm -n ${network} -y`, {
encoding: 'utf-8',
});
console.log(output);
// Parse deployment address from output
const addressMatch = output.match(/Deployed at: (0x[a-fA-F0-9]{40})/);
if (!addressMatch) {
throw new Error('Failed to parse deployment address');
}
const address = addressMatch[1];
// Save deployment record
const deploymentDir = path.join('.web3-devkit', 'deployments');
const record: DeploymentRecord = {
network,
address,
timestamp: new Date().toISOString(),
deployer: process.env.DEPLOYER_ADDRESS || 'unknown',
};
fs.writeFileSync(
path.join(deploymentDir, `${network}-latest.json`),
JSON.stringify(record, null, 2)
);
console.log(`Deployment saved: ${address}`);
}
deployContract('base').catch(console.error);typescript
import { execSync } from 'child_process';
import fs from 'fs';
import path from 'path';
interface DeploymentRecord {
network: string;
address: string;
timestamp: string;
deployer: string;
}
async function deployContract(network: string): Promise<void> {
console.log(`正在部署到${network}...`);
// 运行web3-devkit部署命令
const output = execSync(`web3 deploy evm -n ${network} -y`, {
encoding: 'utf-8',
});
console.log(output);
// 从输出中解析部署地址
const addressMatch = output.match(/Deployed at: (0x[a-fA-F0-9]{40})/);
if (!addressMatch) {
throw new Error('解析部署地址失败');
}
const address = addressMatch[1];
// 保存部署记录
const deploymentDir = path.join('.web3-devkit', 'deployments');
const record: DeploymentRecord = {
network,
address,
timestamp: new Date().toISOString(),
deployer: process.env.DEPLOYER_ADDRESS || 'unknown',
};
fs.writeFileSync(
path.join(deploymentDir, `${network}-latest.json`),
JSON.stringify(record, null, 2)
);
console.log(`部署记录已保存: ${address}`);
}
deployContract('base').catch(console.error);Project Structure After Init
初始化后的项目结构
After running , you'll get:
web3 init evm-foundrymy-project/
├── contracts/ # Solidity contracts
│ └── Counter.sol
├── script/ # Deployment scripts
│ └── Counter.s.sol
├── test/ # Forge tests
│ └── Counter.t.sol
├── .env.example
├── foundry.toml
├── README.md
└── .web3-devkit/ # DevKit metadata
├── config.json
└── deployments/After running :
web3 init fullstack-evmmy-fullstack-dapp/
├── contracts/ # Smart contracts
├── frontend/ # Next.js dApp
│ ├── components/
│ ├── pages/
│ └── public/
├── backend/
│ └── api/ # API routes
├── .env.example
└── README.md运行后,你将得到:
web3 init evm-foundrymy-project/
├── contracts/ # Solidity合约
│ └── Counter.sol
├── script/ # 部署脚本
│ └── Counter.s.sol
├── test/ # Forge测试
│ └── Counter.t.sol
├── .env.example
├── foundry.toml
├── README.md
└── .web3-devkit/ # DevKit元数据
├── config.json
└── deployments/运行后:
web3 init fullstack-evmmy-fullstack-dapp/
├── contracts/ # 智能合约
├── frontend/ # Next.js dApp
│ ├── components/
│ ├── pages/
│ └── public/
├── backend/
│ └── api/ # API路由
├── .env.example
└── README.mdTroubleshooting
故障排除
RPC Connection Fails
RPC连接失败
Problem: times out or fails.
web3 rpc test -n baseSolutions:
- Check your RPC URL in config:
web3 config get rpc.base - Update RPC URL:
web3 config set rpc.base https://mainnet.base.org - Verify network connectivity:
curl -X POST ${BASE_RPC_URL} -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - Use environment variable:
BASE_RPC_URL=${ALCHEMY_BASE_URL} web3 rpc test -n base
问题: 超时或失败。
web3 rpc test -n base解决方案:
- 检查配置中的RPC URL:
web3 config get rpc.base - 更新RPC URL:
web3 config set rpc.base https://mainnet.base.org - 验证网络连接:
curl -X POST ${BASE_RPC_URL} -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' - 使用环境变量:
BASE_RPC_URL=${ALCHEMY_BASE_URL} web3 rpc test -n base
Deployment Gas Estimation Error
部署Gas估算错误
Problem: fails with "insufficient funds".
web3 deploy evm -n base --estimateSolutions:
- Check wallet balance:
web3 wallet balance -n base -a ${YOUR_ADDRESS} - Fund wallet with native token (ETH for Base)
- Verify private key is set:
echo $PRIVATE_KEY - Use lower gas limits in deployment config
问题: 提示“资金不足”错误。
web3 deploy evm -n base --estimate解决方案:
- 检查钱包余额:
web3 wallet balance -n base -a ${YOUR_ADDRESS} - 为钱包充值原生代币(Base网络为ETH)
- 验证私钥已设置:
echo $PRIVATE_KEY - 在部署配置中降低Gas限制
Generated Contract Won't Compile
生成的合约无法编译
Problem: creates contract that won't compile.
web3 generate token -c evm -v erc20 -n MyToken -ySolutions:
- Ensure Foundry or Hardhat is installed: or
forge --versionnpx hardhat --version - Install dependencies: or
forge installnpm install - Check Solidity version compatibility in or
foundry.tomlhardhat.config.ts - Update imports in generated contract if needed
问题: 生成的合约无法编译。
web3 generate token -c evm -v erc20 -n MyToken -y解决方案:
- 确保已安装Foundry或Hardhat:或
forge --versionnpx hardhat --version - 安装依赖:或
forge installnpm install - 检查或
foundry.toml中的Solidity版本兼容性hardhat.config.ts - 必要时更新生成合约中的导入语句
Monitor Command Shows No Events
监控命令无事件显示
Problem: runs but shows no activity.
web3 monitor wallet -a 0x... -n ethereumSolutions:
- Verify wallet has activity: check on block explorer
- Ensure correct network:
web3 config get defaultChain - Check RPC connection:
web3 rpc test -n ethereum - Increase polling interval or use WebSocket RPC if available
- Monitor specific events instead:
web3 monitor contract -a 0x... -e Transfer -n ethereum
问题: 运行但无活动显示。
web3 monitor wallet -a 0x... -n ethereum解决方案:
- 验证钱包是否有活动:在区块浏览器中查看
- 确认网络正确:
web3 config get defaultChain - 检查RPC连接:
web3 rpc test -n ethereum - 增加轮询间隔或使用WebSocket RPC(如果可用)
- 改为监控特定事件:
web3 monitor contract -a 0x... -e Transfer -n ethereum
Frontend Integration Not Working
前端集成无效
Problem: completes but wallet doesn't connect.
web3 add wagmi -ySolutions:
- Ensure you're in a Next.js project directory
- Install peer dependencies:
npm install wagmi viem @tanstack/react-query - Wrap your app with in
WagmiConfig_app.tsx - Configure chains correctly in wagmi config
- Check browser console for errors
问题: 执行完成但钱包无法连接。
web3 add wagmi -y解决方案:
- 确保当前目录为Next.js项目
- 安装对等依赖:
npm install wagmi viem @tanstack/react-query - 在中用
_app.tsx包裹应用WagmiConfig - 在wagmi配置中正确配置链信息
- 检查浏览器控制台中的错误信息
Command Not Found
命令未找到
Problem: command not recognized after installation.
web3Solutions:
- Run in the cloned repository
npm link - Use if not linked
npm run web3 -- <command> - Check PATH includes npm global bin:
npm config get prefix - Reinstall globally:
npm install -g web3-devkit-cli
问题: 安装后无法识别命令。
web3解决方案:
- 在克隆的仓库中运行
npm link - 未执行link时使用
npm run web3 -- <command> - 检查PATH是否包含npm全局bin目录:
npm config get prefix - 重新全局安装:
npm install -g web3-devkit-cli
Permission Denied on Wallet Creation
创建钱包时权限被拒绝
Problem: fails with permission error.
web3 wallet create --chain evmSolutions:
- Check directory permissions:
ls -la .web3-devkit/ - Create directory manually:
mkdir -p .web3-devkit/wallets - Run with appropriate permissions
- Store wallet files in user home directory instead
问题: 提示权限错误。
web3 wallet create --chain evm解决方案:
- 检查目录权限:
ls -la .web3-devkit/ - 手动创建目录:
mkdir -p .web3-devkit/wallets - 使用适当权限运行命令
- 将钱包文件存储在用户主目录中
Advanced Configuration
高级配置
Custom RPC Endpoints per Network
为每个网络设置自定义RPC端点
bash
undefinedbash
undefinedSet custom RPC URLs
设置自定义RPC URL
web3 config set rpc.ethereum https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.base https://base-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.arbitrum https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.solana https://api.mainnet-beta.solana.com
undefinedweb3 config set rpc.ethereum https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.base https://base-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.arbitrum https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}
web3 config set rpc.solana https://api.mainnet-beta.solana.com
undefinedMulti-Chain Deployment Strategy
多链部署策略
bash
undefinedbash
undefinedDeploy to multiple networks sequentially
依次部署到多个网络
for network in base arbitrum polygon; do
echo "Deploying to $network..."
web3 deploy evm -n $network -y
web3 verify -n $network -a $(web3 deploy history | grep $network | awk '{print $2}') -c MyToken
done
undefinedfor network in base arbitrum polygon; do
echo "正在部署到$network..."
web3 deploy evm -n $network -y
web3 verify -n $network -a $(web3 deploy history | grep $network | awk '{print $2}') -c MyToken
done
undefinedMonitoring Multiple Contracts
监控多个合约
bash
undefinedbash
undefinedMonitor multiple contracts in parallel
并行监控多个合约
web3 monitor contract -a 0xToken1 -e Transfer -n base &
web3 monitor contract -a 0xToken2 -e Transfer -n base &
web3 monitor wallet -a 0xMyWallet -n base &
wait
undefinedweb3 monitor contract -a 0xToken1 -e Transfer -n base &
web3 monitor contract -a 0xToken2 -e Transfer -n base &
web3 monitor wallet -a 0xMyWallet -n base &
wait
undefinedResources
资源
- Documentation: Check directory in repository
docs/ - Templates: Browse for project scaffolds
templates/ - Generators: Review for contract boilerplates
generators/ - Integrations: See for frontend wallet adapters
integrations/
- 文档: 查看仓库中的目录
docs/ - 模板: 浏览目录获取项目脚手架
templates/ - 生成器: 查看目录获取合约模板
generators/ - 集成: 查看目录获取前端钱包适配器
integrations/
Requirements
要求
- Node.js 18+
- npm or yarn
- For EVM: Foundry or Hardhat installed
- For Solana: Anchor CLI installed
- Valid RPC endpoints for target networks
- Node.js 18+
- npm或yarn
- 针对EVM:已安装Foundry或Hardhat
- 针对Solana:已安装Anchor CLI
- 目标网络的有效RPC端点