web3-devkit-cli

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Web3 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-cli
Or 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 globally
Run 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
undefined

Interactive 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 + API
web3 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 + API

Contract Generation

合约生成

Generate smart contracts and programs from boilerplate:
bash
undefined
从模板生成智能合约和程序:
bash
undefined

Generate 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 prompts
web3 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
undefined

Create 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, testnet
web3 wallet tokens -n ethereum -a 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb

**支持的网络:**
- **EVM:** ethereum、base、arbitrum、polygon、bsc、avalanche
- **Solana:** mainnet-beta、devnet、testnet

RPC & Network Testing

RPC与网络测试

Validate RPC connectivity and check network status:
bash
undefined
验证RPC连接并检查网络状态:
bash
undefined

Test 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
undefined
web3 network check -n ethereum
undefined

Contract Deployment

合约部署

Deploy contracts and programs with gas estimation:
bash
undefined
部署合约和程序并估算Gas费用:
bash
undefined

Estimate 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
undefined

Monitor 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
undefined
web3 monitor token -a 0xTokenAddress -w 0xWalletAddress -n base
undefined

Frontend Integration

前端集成

Add wallet providers and chain configurations to Next.js projects:
bash
undefined
为Next.js项目添加钱包提供商和链配置:
bash
undefined

Add 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
undefined
web3 add solana-wallet -y
undefined

Configuration Management

配置管理

Persist project defaults to skip repetitive flags:
bash
undefined
保存项目默认配置以重复使用:
bash
undefined

Initialize 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
undefined
bash
undefined

Initialize 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
undefined
web3 monitor contract -a 0xDeployedTokenAddress -e Transfer -n base
undefined

Start a Solana Project

启动Solana项目

bash
undefined
bash
undefined

Initialize 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
undefined
web3 deploy solana -n devnet -y
undefined

Full-Stack dApp with Frontend

带前端的全栈dApp

bash
undefined
bash
undefined

Initialize 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
undefined
web3 deploy evm -n base -y web3 verify -n base -a 0xContractAddress -c MyNFT
undefined

Working 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 -y
Or inline:
bash
BASE_RPC_URL=${BASE_RPC_URL} web3 rpc test -n base
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

运行命令前加载环境变量:

```bash
source .env
web3 deploy evm -n base -y
或者直接在命令中使用:
bash
BASE_RPC_URL=${BASE_RPC_URL} web3 rpc test -n base

TypeScript Integration Examples

TypeScript集成示例

Using Generated ERC20 Contract

使用生成的ERC20合约

After generating an ERC20 token with
web3 generate token -c evm -v erc20 -n MyToken -y
:
typescript
// 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);
使用
web3 generate token -c evm -v erc20 -n MyToken -y
生成ERC20代币后:
typescript
// 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
web3 init evm-foundry
, you'll get:
my-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-evm
:
my-fullstack-dapp/
├── contracts/           # Smart contracts
├── frontend/            # Next.js dApp
│   ├── components/
│   ├── pages/
│   └── public/
├── backend/
│   └── api/             # API routes
├── .env.example
└── README.md
运行
web3 init evm-foundry
后,你将得到:
my-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-evm
后:
my-fullstack-dapp/
├── contracts/           # 智能合约
├── frontend/            # Next.js dApp
│   ├── components/
│   ├── pages/
│   └── public/
├── backend/
│   └── api/             # API路由
├── .env.example
└── README.md

Troubleshooting

故障排除

RPC Connection Fails

RPC连接失败

Problem:
web3 rpc test -n base
times out or fails.
Solutions:
  1. Check your RPC URL in config:
    web3 config get rpc.base
  2. Update RPC URL:
    web3 config set rpc.base https://mainnet.base.org
  3. Verify network connectivity:
    curl -X POST ${BASE_RPC_URL} -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
  4. Use environment variable:
    BASE_RPC_URL=${ALCHEMY_BASE_URL} web3 rpc test -n base
问题:
web3 rpc test -n base
超时或失败。
解决方案:
  1. 检查配置中的RPC URL:
    web3 config get rpc.base
  2. 更新RPC URL:
    web3 config set rpc.base https://mainnet.base.org
  3. 验证网络连接:
    curl -X POST ${BASE_RPC_URL} -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
  4. 使用环境变量:
    BASE_RPC_URL=${ALCHEMY_BASE_URL} web3 rpc test -n base

Deployment Gas Estimation Error

部署Gas估算错误

Problem:
web3 deploy evm -n base --estimate
fails with "insufficient funds".
Solutions:
  1. Check wallet balance:
    web3 wallet balance -n base -a ${YOUR_ADDRESS}
  2. Fund wallet with native token (ETH for Base)
  3. Verify private key is set:
    echo $PRIVATE_KEY
  4. Use lower gas limits in deployment config
问题:
web3 deploy evm -n base --estimate
提示“资金不足”错误。
解决方案:
  1. 检查钱包余额:
    web3 wallet balance -n base -a ${YOUR_ADDRESS}
  2. 为钱包充值原生代币(Base网络为ETH)
  3. 验证私钥已设置:
    echo $PRIVATE_KEY
  4. 在部署配置中降低Gas限制

Generated Contract Won't Compile

生成的合约无法编译

Problem:
web3 generate token -c evm -v erc20 -n MyToken -y
creates contract that won't compile.
Solutions:
  1. Ensure Foundry or Hardhat is installed:
    forge --version
    or
    npx hardhat --version
  2. Install dependencies:
    forge install
    or
    npm install
  3. Check Solidity version compatibility in
    foundry.toml
    or
    hardhat.config.ts
  4. Update imports in generated contract if needed
问题:
web3 generate token -c evm -v erc20 -n MyToken -y
生成的合约无法编译。
解决方案:
  1. 确保已安装Foundry或Hardhat:
    forge --version
    npx hardhat --version
  2. 安装依赖:
    forge install
    npm install
  3. 检查
    foundry.toml
    hardhat.config.ts
    中的Solidity版本兼容性
  4. 必要时更新生成合约中的导入语句

Monitor Command Shows No Events

监控命令无事件显示

Problem:
web3 monitor wallet -a 0x... -n ethereum
runs but shows no activity.
Solutions:
  1. Verify wallet has activity: check on block explorer
  2. Ensure correct network:
    web3 config get defaultChain
  3. Check RPC connection:
    web3 rpc test -n ethereum
  4. Increase polling interval or use WebSocket RPC if available
  5. Monitor specific events instead:
    web3 monitor contract -a 0x... -e Transfer -n ethereum
问题:
web3 monitor wallet -a 0x... -n ethereum
运行但无活动显示。
解决方案:
  1. 验证钱包是否有活动:在区块浏览器中查看
  2. 确认网络正确:
    web3 config get defaultChain
  3. 检查RPC连接:
    web3 rpc test -n ethereum
  4. 增加轮询间隔或使用WebSocket RPC(如果可用)
  5. 改为监控特定事件:
    web3 monitor contract -a 0x... -e Transfer -n ethereum

Frontend Integration Not Working

前端集成无效

Problem:
web3 add wagmi -y
completes but wallet doesn't connect.
Solutions:
  1. Ensure you're in a Next.js project directory
  2. Install peer dependencies:
    npm install wagmi viem @tanstack/react-query
  3. Wrap your app with
    WagmiConfig
    in
    _app.tsx
  4. Configure chains correctly in wagmi config
  5. Check browser console for errors
问题:
web3 add wagmi -y
执行完成但钱包无法连接。
解决方案:
  1. 确保当前目录为Next.js项目
  2. 安装对等依赖:
    npm install wagmi viem @tanstack/react-query
  3. _app.tsx
    中用
    WagmiConfig
    包裹应用
  4. 在wagmi配置中正确配置链信息
  5. 检查浏览器控制台中的错误信息

Command Not Found

命令未找到

Problem:
web3
command not recognized after installation.
Solutions:
  1. Run
    npm link
    in the cloned repository
  2. Use
    npm run web3 -- <command>
    if not linked
  3. Check PATH includes npm global bin:
    npm config get prefix
  4. Reinstall globally:
    npm install -g web3-devkit-cli
问题: 安装后无法识别
web3
命令。
解决方案:
  1. 在克隆的仓库中运行
    npm link
  2. 未执行link时使用
    npm run web3 -- <command>
  3. 检查PATH是否包含npm全局bin目录:
    npm config get prefix
  4. 重新全局安装:
    npm install -g web3-devkit-cli

Permission Denied on Wallet Creation

创建钱包时权限被拒绝

Problem:
web3 wallet create --chain evm
fails with permission error.
Solutions:
  1. Check directory permissions:
    ls -la .web3-devkit/
  2. Create directory manually:
    mkdir -p .web3-devkit/wallets
  3. Run with appropriate permissions
  4. Store wallet files in user home directory instead
问题:
web3 wallet create --chain evm
提示权限错误。
解决方案:
  1. 检查目录权限:
    ls -la .web3-devkit/
  2. 手动创建目录:
    mkdir -p .web3-devkit/wallets
  3. 使用适当权限运行命令
  4. 将钱包文件存储在用户主目录中

Advanced Configuration

高级配置

Custom RPC Endpoints per Network

为每个网络设置自定义RPC端点

bash
undefined
bash
undefined

Set custom RPC URLs

设置自定义RPC URL

Multi-Chain Deployment Strategy

多链部署策略

bash
undefined
bash
undefined

Deploy 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
undefined
for 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
undefined

Monitoring Multiple Contracts

监控多个合约

bash
undefined
bash
undefined

Monitor 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
undefined
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
undefined

Resources

资源

  • Documentation: Check
    docs/
    directory in repository
  • Templates: Browse
    templates/
    for project scaffolds
  • Generators: Review
    generators/
    for contract boilerplates
  • Integrations: See
    integrations/
    for frontend wallet adapters
  • 文档: 查看仓库中的
    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端点