Solana创建带转账手续费代币时Program(IncorrectProgramId)错误排查
解决Solana带转账手续费代币创建的Program(IncorrectProgramId)错误
错误原因
你遇到的Program(IncorrectProgramId)错误,是因为默认的Solana Token程序(TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)不支持转账手续费功能。带转账手续费的代币需要使用Token 2022程序,它的程序ID是TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb,你的命令没有指定这个程序,导致调用了不兼容的旧程序。
另外注意:你之前用的--transfer-fee 50 1000实际是设置5%的手续费,2%手续费应该用--transfer-fee 2 100。
正确创建步骤
- 更新spl-token CLI到最新版本
旧版本CLI可能不支持Token 2022功能,执行以下命令更新:
cargo install spl-token-cli --force
- 创建带2%转账手续费的Token 2022代币
必须指定Token 2022的程序ID,命令如下:
spl-token create-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb --transfer-fee 2 100
执行后会返回你的代币地址,记下来备用。
- 创建铸币账户并铸造10万枚代币
先创建对应的账户:
spl-token create-account <你的代币地址>
然后铸造总供应量:
spl-token mint <你的代币地址> 100000
- (可选)冻结铸币权限
如果不想后续增发代币,执行以下命令禁用铸币权限:
spl-token authorize <你的代币地址> mint --disable
内容的提问来源于stack exchange,提问作者OXI
相关产品推荐
相关产品推荐

