使用bitcoinjs-lib在比特币测试网铭刻Ordinal失败:交易未被识别
解决Ordinal铭文未被浏览器识别的问题
关键排查步骤
校验Ordinal信封格式
必须严格遵循规范:开头是OP_FALSE OP_IF,接着是ord魔术字节(十六进制6f7264)、版本号01、内容类型(如image/png)、二进制图片数据,最后用OP_ENDIF闭合。检查Tapleaf脚本ASM是否完全符合这个结构,魔术字节和版本号不能出错。检查Taproot锁定脚本
输出锁定脚本必须是标准Taproot格式:OP_1 <x-only公钥>,不能有多余操作码或格式错误,否则索引器无法解析见证数据。确认见证数据顺序
用bitcoinjs-lib构建PSBT时,见证数据里签名要排在Tapleaf脚本(含Ordinal信封)之前。顺序错误会导致索引器无法识别铭文。验证输出位置
Ordinal铭文必须存在于交易的第一个UTXO的见证区里。如果放在非第一个输出,索引器会直接忽略。等待区块确认
部分Testnet索引器需要1-6个区块确认才会展示铭文,交易提交后先等待一段时间再刷新查看。
工具验证方法
使用
bitcoin-cli解析原始交易,检查结构是否合规:bitcoin-cli decoderawtransaction <原始交易十六进制字符串>重点查看
vout的scriptPubKey格式,以及witness字段的内容是否匹配Ordinal信封结构。手动核对Tapleaf脚本ASM,确保
OP_FALSE OP_IF ord 01 image/png <图片二进制数据> OP_ENDIF的结构无遗漏、无多余操作码。
内容的提问来源于stack exchange,提问作者Crypto Trekker
相关产品推荐
相关产品推荐

