使用Metaplex CLI上传Solana Devnet NFT遇模块缺失等错误求助
解决WSL下Metaplex CLI上传NFT的两类错误
一、「Non-base58 character」错误排查
这个错误核心是文件里混入了不符合Base58编码的字符,按以下步骤逐一排查:
- 检查密钥文件
~/.config/solana/devnet.json:打开文件确认内容是纯Base58字符串,没有多余空格、换行或引号。也可以用命令快速验证:
要是没输出,说明密钥格式错了,重新导出:cat ~/.config/solana/devnet.json | tr -d '\n' | grep -E '^[A-HJ-NP-Za-km-z1-9]+$'solana-keygen new --outfile ~/.config/solana/devnet.json - 检查
config.json:确认creators数组里的地址都是合法Solana地址(纯Base58格式),别写错字符,比如避免O、I、l这类易混淆的符号。 - 检查
./assets下的元数据:每个NFT的.json文件里,seller_fee_basis_points必须是数字,image字段是纯文件名(不能带特殊字符),所有字段格式要规范。
二、「Error: Cannot find module」错误解决
这个问题是Node.js找不到依赖模块,和Metaplex安装/环境配置有关:
- 必须在Metaplex根目录下执行命令:先切换目录再跑CLI,比如:
cd ~/metaplex ts-node js/packages/cli/src/candy-machine-v2-cli.ts upload -e devnet -k ~/.config/solana/devnet.json -cp config.json ./assets - 重装Metaplex依赖:删除目录下的
node_modules和package-lock.json后重新安装:cd ~/metaplex rm -rf node_modules package-lock.json npm install - 匹配Node.js版本:Metaplex要求用Node.js 16.x版本,过高过低都会出问题,用nvm切换:
nvm install 16 nvm use 16 - 修复文件权限:确保Metaplex和Solana配置目录有读写权限:
chmod -R 755 ~/metaplex ~/.config/solana
三、验证流程
- 重新导出合法的Devnet密钥
- 核对所有配置、元数据文件的格式
- 在Metaplex根目录重装依赖
- 切换到Node.js 16.x后再执行上传命令
内容的提问来源于stack exchange,提问作者Death Sn1per
相关产品推荐
相关产品推荐

