You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zcash T/Z地址执行RawTransaction时报错:无效Zcash地址

解决Zcash createrawtransaction的「invalid zcash address」错误

我来帮你排查这个报错问题,你遇到的「invalid zcash address」通常有两个核心原因,对应下面的解决方案:

一、先排查地址网络是否匹配

你使用的Z地址是ztJTQ72v68ZddM4vmJg77K1mdBXHWQPS8GXN4Yb7A8e48JUo3tNzLgej1yqFPFeNkVUL1CMeg62qHMr7joaYK35A86neMNM,开头是zt——这是Zcash测试网的屏蔽地址格式,但如果你的节点运行在主网模式下,主网节点会直接拒绝识别测试网地址,从而触发错误。

验证方法:

运行以下命令查看当前节点的网络模式:

./src/zcash-cli getnetworkinfo

查看输出中的chain字段:

  • 如果显示main,说明是主网,需要改用主网Z地址(以z开头)
  • 如果显示test,说明是测试网,这个zt开头的地址是合法的

调整方式:

如果网络不匹配,要么修改zcash.conf配置文件(添加testnet=1启用测试网,删除该参数则回到主网),要么更换对应网络的合法地址。

二、修正createrawtransaction的输出格式

Zcash的createrawtransaction命令处理**屏蔽地址(Z地址)和透明地址(T地址)**混合输出时,不能直接用{"地址": 金额}的键值对格式,需要改用数组结构,每个输出是独立的对象。

正确的命令格式:

./src/zcash-cli createrawtransaction '[{"txid":"f7e04b684ee10c3c8e7aacdcd11454e7f21d91c5a8b27ae6cbbbca93efa57ddd","vout":0}]' '[{"address": "ztJTQ72v68ZddM4vmJg77K1mdBXHWQPS8GXN4Yb7A8e48JUo3tNzLgej1yqFPFeNkVUL1CMeg62qHMr7joaYK35A86neMNM", "amount":7}, {"address": "tmNHNUV56LiEyb8cSrrAgupHXnrxhbN1H6v", "amount":2.9999}]'

注意:这个格式需要你的Zcash客户端版本在5.0及以上,旧版本可能不支持这种混合输出的结构化写法。

三、更简单的替代方案:使用zcash_sendmany

如果不需要手动构建原始交易,zcash_sendmany命令对混合地址输出更友好,不需要纠结格式:

./src/zcash-cli zcash_sendmany "" '{"ztJTQ72v68ZddM4vmJg77K1mdBXHWQPS8GXN4Yb7A8e48JUo3tNzLgej1yqFPFeNkVUL1CMeg62qHMr7joaYK35A86neMNM":7, "tmNHNUV56LiEyb8cSrrAgupHXnrxhbN1H6v":2.9999}' 1 "" '[{"txid":"f7e04b684ee10c3c8e7aacdcd11454e7f21d91c5a8b27ae6cbbbca93efa57ddd","vout":0}]'

参数说明:

  • 第一个空字符串:表示从默认钱包的可用地址中自动匹配输入(这里我们指定了自定义UTXO,所以不影响)
  • 第二个对象:输出的地址和对应金额
  • 1:手续费优先级(可根据需求调整)
  • 第四个空字符串:交易备注(可选)
  • 最后一个数组:你指定的输入UTXO

额外注意点:

  • 确保你指定的UTXO金额足够覆盖输出总额+手续费,否则会触发余额不足的错误
  • 如果是测试网,先确认节点已经同步到最新区块高度

内容的提问来源于stack exchange,提问作者Pratibha R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:17:40