Auction House CLI执行sell指令挂单NFT交易失败问题咨询
Solana Devnet Auction House CLI 挂单NFT报错解决方案
问题场景
在Solana开发网执行如下命令尝试通过Auction House CLI挂单出售NFT:
ts-node src/auction-house-cli.ts sell \ -k /Users/wizard/.config/solana/devnet.json \ -ah 7sghryHrhZ48DKAt8jCtaZGcX9DioVzykwAeqQhwstKn \ --buy-price 1 \ --mint DJPcJZkmpazb75Eu2moXjt8dfE2sTqxeZAWH6fYEFu4Q \ --token-size 1
执行后返回报错:
wallet public key: 6SNzXuypAYyC7U41c4J6i7X5XGe9J6fG2w3iZPpoJgAV Using cluster devnet Rejected via websocket { InstructionError: [ 0, { Custom: 1 } ] } Timeout Error caught { err: { InstructionError: [ 0, [Object] ] }, slot: 145039789, confirmations: 0 } /Users/wizard/metaplex-folder/metaplex/js/packages/cli/src/helpers/transactions.ts:136 throw new Error( ^ Error: Transaction failed: Transfer 897840 lamports to the new account at sendSignedTransaction (/Users/wizard/metaplex-folder/metaplex/js/packages/cli/src/helpers/transactions.ts:136:19) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async sendTransactionWithRetryWithKeypair (/Users/wizard/metaplex-folder/metaplex/js/packages/cli/src/helpers/transactions.ts:59:26) at async Command.<anonymous> (/Users/wizard/metaplex-folder/metaplex/js/packages/cli/src/auction-house-cli.ts:329:5)
已知前提:钱包6SNzXuypAYyC7U41c4J6i7X5XGe9J6fG2w3iZPpoJgAV持有目标NFT,用户主观判断余额足够支付交易手续费。
故障根因
报错里的两个核心信息可以直接定位问题:
Custom: 1是Solana系统程序的标准错误码,对应余额不足Transfer 897840 lamports to the new account里的897840 lamports,正好是Solana链上165字节大小的代币账户所需的租金豁免最低押金。
挂单出售时,Auction House需要生成一个专属托管代币账户来锁仓待出售的NFT,创建这个账户的租金押金需要从卖家钱包临时扣除(后续取消挂单/交易完成关闭托管账户时,押金会原路退回)。旧版Metaplex CLI的费用计算逻辑有缺陷,只会提示用户预留几千lamports的交易签名费,不会提示用户预留这笔托管账户的租金,很多用户只留了刚好够付手续费的余额,就会触发这个转账失败的错误。
少数情况是传入的Auction House地址不属于devnet环境,派生的账户路径异常,触发无效的租金转账逻辑。
修复步骤
- 先查询钱包实际可用的devnet SOL余额,不要主观判断余额足够:
solana balance 6SNzXuypAYyC7U41c4J6i7X5XGe9J6fG2w3iZPpoJgAV --url devnet - 如果余额低于0.002 SOL,先领devnet空投或者转至少0.01 SOL到钱包,覆盖托管账户租金+交易签名费即可,不要只留几千lamports的手续费额度。
- 确认传入的Auction House地址
7sghryHrhZ48DKAt8jCtaZGcX9DioVzykwAeqQhwstKn是devnet环境下部署的有效实例,不要混用主网/测试网的Auction House地址。 - 如果余额足够还是报错,更新本地Metaplex仓库代码到最新版本,修复旧版CLI的费用计算bug:
cd /Users/wizard/metaplex-folder/metaplex/js git pull yarn install && yarn build - 重新执行最开始的sell挂单命令即可。
内容的提问来源于stack exchange,提问作者technotechkid
相关产品推荐
相关产品推荐

