# Wormholescan 有目标交易仍未到账：核对NTT消息、队列和释放

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/wormholescan-ntt-target-record-not-credit
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

用已有operations与NTT事件分开源发消息、Guardian VAA、目标接收和mint/unlock，避免直接复制示例Completed标签或将NTT当Portal WTT。

## 使用工具
- [Wormholescan](https://lianxiaozhi.com/tools/wormholescan) · [官方入口](https://wormholescan.io/)

## 前置条件
- 已有脱敏operations响应及原参数、源/目标交易或NTT事件记录；没有时按官方字段说明列出缺口。
- 明确该资产使用NTT及对应manager/transceiver；WTT/Portal转移参考其独立流程，不套本篇NTT队列规则。
- 保存环境、chain ID、emitter/sequence、token地址和采集日期；不运行官方demo、不发API/兑换或队列完成交易。

## 1. 明确查询范围与NTT产品身份

/api/v1/operations为跨链活动列表；已有记录中的address、txHash、sourceChain/targetChain/includesChain、appId/exclusiveAppId与addressType都保留。规范address描述emitter，而addressType给from/to；未取得更详细匹配规则时不要称该查询覆盖某钱包所有资产。

NTT由manager及transceiver管理原生token锁/烧、mint/unlock，可有多个transceiver及阈值。普通Core消息、WTT包装资产、CCTP或其他payload不能仅因为有VAA就套NTT字段；根据已有payload/appIds与manager配置辨别，未知产品标待核。

核对结果：记录明确是何种操作/产品及筛选范围，NTT身份不足时不推队列或资产释放。
依据：[Wormhole 官方 Wormholescan 查询教程](https://wormhole.com/docs/ai/pages/products-messaging-guides-wormholescan-api.md)
依据：[Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)
依据：[Wormhole NTT 转移与队列阶段](https://wormhole.com/docs/ai/pages/products-token-transfers-native-token-transfers-concepts-transfer-flow.md)
依据：[Wormhole VAA身份与最终性](https://wormhole.com/docs/protocol/infrastructure/vaas/)

## 2. 按当前规范识别列表和金额结构

当前GET operations的200规范是OperationResponse数组，官方SDK3.x指南却用response.operations。先判已有响应为数组还是对象，保留路径差异；null/缺字段不能硬转成空operations。

content.standarizedProperties按规范保留原拼写，不自行改为standardizedProperties。sourceChain、targetChain、vaa与content未全部声明required，读取每项前检查存在性；指南强类型和示例payload结构不保证所有跨链产品返回同样内容。

核对结果：解析路径、原JSON形状与实际有无字段明确；类型断言不会制造一个假目标记录。
依据：[Wormhole 官方 Wormholescan 查询教程](https://wormhole.com/docs/ai/pages/products-messaging-guides-wormholescan-api.md)
依据：[Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)

## 3. 拆开源活动、VAA和目标记录

按id及emitterChain/emitterAddress/sequence串联sourceChain.transaction.txHash、vaa、targetChain.transaction.txHash，同时保存各自status和时间。当前status是字符串未给完整成功枚举，沿用原值，不把任意非空值映射成完成。

官方getOperationStatus helper仅检查targetChain存在就Completed，否则vaa存在就Emitted。这是演示标签，不能当到账判定；目标记录可能是消息接收/队列动作。VAA存在也只是另一阶段，目标hash必须属于正确目标链并与同消息对应。

核对结果：源交易、证明和目标关联分别列证据；示例Completed标签与可证执行结果没有混合。
依据：[Wormhole 官方 Wormholescan 查询教程](https://wormhole.com/docs/ai/pages/products-messaging-guides-wormholescan-api.md)
依据：[Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)
依据：[Wormhole VAA身份与最终性](https://wormhole.com/docs/protocol/infrastructure/vaas/)

## 4. 用NTT事件定位尚未释放的阶段

EVM上的ReceiveRelayedMessage与MessageAttestedTo描述消息接收/attestation；目标threshold未满足或inbound capacity受限时仍可能等待/队列。完成mint/unlock后才有TransferRedeemed；已有日志中的InboundTransferQueued或StillQueued错误不能作已释放。

Solana ReceiveMessage/Redeem也不同于ReleaseInboundMint/ReleaseInboundUnlock；官方特别说明revert_on_delay=false时交易可成功但mint/unlock未发生。因此目标交易成功仍不足，需对应释放日志/结果及同一收款token证据。queue delay由具体配置决定，不给固定到账分钟数，也不发complete/release交易。

核对结果：排错分支能指向验证阈值、目标队列或实际释放；链特定的交易成功与资产动作分开。
依据：[Wormhole NTT 转移与队列阶段](https://wormhole.com/docs/ai/pages/products-token-transfers-native-token-transfers-concepts-transfer-flow.md)

## 5. 保留精确金额、token和费用口径

已有NTT payload可有nttMessage.trimmedAmount.amount/decimals，规范标准化层还有amount/normalizedDecimals、tokenChain/tokenAddress与from/to。保留各层原字符串和精度，别将两个amount当同一尺度或统一乘除18/8；换算需对应NTT版本和目标token decimals证据。

源/目标fee、feeUSD、gasTokenNotional与标准化fee/feeChain/feeAddress是不同层；schema没有为所有字段给单位/时刻保证，币种未知时不补USD或native金额。token名字、链native token与桥接表示不同，目标收款证据需匹配目标token地址与接收人。

核对结果：金额保留原精度与字段层级，费用币种和目标资产身份未知项可见，不给实时估值或到账金额承诺。
依据：[Wormhole 官方 Wormholescan 查询教程](https://wormhole.com/docs/ai/pages/products-messaging-guides-wormholescan-api.md)
依据：[Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)
依据：[Wormhole NTT 转移与队列阶段](https://wormhole.com/docs/ai/pages/products-token-transfers-native-token-transfers-concepts-transfer-flow.md)

## 6. 检查分页、时间与索引缺口后出结论

operations支持page/pageSize及from/to，但本次方法规范未定义页起点/最大页/该时间格式；不要套VAA列表RFC3339两周默认规则或旧源码pageSize100。固定原查询条件，保存每页原id与采集时间，跨页重复先保留后标记，不能称全链历史。

400/500、空数组、字段缺失与未知索引状态分别记录。最终结论可为“仅有VAA”“有目标接收/队列，未取得释放证据”“有对应释放且已有目标token收款证据”，后者仍注明独立链最终性是否已核实；缺targetChain不直接等于链上没执行。

核对结果：结论限定已有记录的产品、范围和时刻，索引、目标执行、实际收款与最终性各自有依据或未知。
依据：[Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)
依据：[Wormhole NTT 转移与队列阶段](https://wormhole.com/docs/ai/pages/products-token-transfers-native-token-transfers-concepts-transfer-flow.md)
依据：[Wormhole VAA身份与最终性](https://wormhole.com/docs/protocol/infrastructure/vaas/)

## 常见错误
- 复制官方演示helper的Completed标签，省略目标status/队列/释放检查。
- 将NTT的manager/transceiver/队列流程自动套Portal WTT或任意Core消息。
- 把规范数组响应与指南operations外壳冲突静默修补，或把拼写standarizedProperties改掉。
- 把目标tx成功当已mint/unlock，忽略Solana revert_on_delay=false；将不同金额/费用层统一当18位native币。

## 完成检查
- 形成同一消息的源交易、VAA、目标活动、NTT阶段与已有收款证据表。
- 正文明确分页/索引/单位/最终性及版本缺口；没有业务API实测、运行demo或触发资金操作。

## 相关知识
- [跨链显示已发送却未到账？来源交易、消息与目标执行分开查](https://lianxiaozhi.com/learn/bridge-transfer-status)
- [Wormhole VAA 为什么要同时核对来源链确认状态？](https://lianxiaozhi.com/learn/wormhole-vaa-finality)
- [区块确认与最终性是什么？交易成功和充值到账为何不同步](https://lianxiaozhi.com/learn/confirmations-and-finality)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [Gas 怎么计算？交易失败为什么仍可能扣费](https://lianxiaozhi.com/learn/gas-and-failed-transactions)

## 官方依据
- [Wormhole 官方 Wormholescan 查询教程](https://wormhole.com/docs/ai/pages/products-messaging-guides-wormholescan-api.md)
- [Wormholescan 当前 Swagger 查询方法](https://api.wormholescan.io/swagger.json)
- [Wormhole VAA身份与最终性](https://wormhole.com/docs/protocol/infrastructure/vaas/)
- [Wormhole NTT 转移与队列阶段](https://wormhole.com/docs/ai/pages/products-token-transfers-native-token-transfers-concepts-transfer-flow.md)
