在区块链世界中,精准获取每一笔交易的详细信息是开发者与用户进行资产验证、数据分析及应用开发的基础。通过特定的交易哈希(txHash),我们可以查询到交易的完整生命周期与底层细节。
什么是交易详情查询
交易详情查询功能允许用户或开发者根据唯一的交易哈希,检索某笔交易在区块链上的全部状态与数据。这包括交易状态、手续费、参与地址、内部交易及代币转移等丰富信息。
Wallet API 将交易及其内部交易按资产类型分解为多种子交易类型,以便更结构化地呈现复杂交易。对于 EVM 兼容链的交易,主要包含以下三种类型:
- 类型 0: 外层主网币转账
- 类型 1: 合约内部的主网币转账
- 类型 2: 代币转账
如何发起交易详情查询请求
请求路径
使用 GET 方法访问以下 API 端点:
https://web3.okx.com/api/v5/wallet/post-transaction/transaction-detail-by-txhash必需请求参数
发起请求时,需要提供以下参数:
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
chainIndex | String | 是 | 区块链的唯一标识符 |
txHash | String | 是 | 交易哈希 |
可选请求参数
您还可以通过 iType 参数筛选特定类型的子交易,以细化查询结果:
| 参数名 | 类型 | 是否必填 | 说明与可选值 |
|---|---|---|---|
iType | String | 否 | 子交易类型:0(外层转账), 1(内部转账), 2(代币转账) |
理解交易详情响应参数
API 响应将返回一个结构化的 JSON 对象,包含交易的全面信息。关键字段如下:
交易基础信息
chainIndex: 交易所在链的唯一标识height: 交易被打包的区块高度txTime: 交易时间(Unix 毫秒时间戳)txhash: 交易哈希txStatus: 交易状态(1-等待中,2-成功,3-失败)gasLimit,gasUsed,gasPrice,txFee: Gas 消耗与手续费详情nonce: 交易随机数
交易输入输出详情
fromDetails: 交易输入方(发送方)详情数组- 包含:地址、输入索引、前序交易输出索引、金额等
toDetails: 交易输出方(接收方)详情数组- 包含:地址、输出索引、金额等
内部交易与代币转移
internalTransactionDetails: 合约调用内部的主网币转账详情tokenTransferDetails: 代币转账详情(如 ERC-20 转账)- 包含:代币合约地址、代币符号、转账数量等
常见应用场景
查询交易详情功能在以下场景中尤为重要:
- 交易状态监控:实时追踪一笔转账的确认状态(成功、失败或待确认)。
- 钱包余额核对:通过分析交易的输入输出,验证账户余额变动的正确性。
- 审计与合规:获取交易的完整流向,用于财务审计或合规检查。
- 智能合约交互分析:解析与复杂合约交互时产生的内部交易,理解资金实际流向。
- 数据分析和索引:为区块链浏览器、数据分析平台提供原始的链上交易数据。
常见问题
问:什么是交易哈希(txHash)?
答:交易哈希是一串由加密算法生成的唯一字符串,类似于一笔交易的身份证号。任何提交到链上的交易都会生成一个唯一的哈希值,通过它可以查询到该交易的所有信息。
问:查询交易时返回“失败”状态,通常是什么原因?
答:交易失败最常见的原因是 Gas 不足、智能合约代码执行出错(例如 revert)、或交易参数设置错误。您可以通过查询详情中的 gasUsed 和 gasLimit 字段来初步判断是否为 Gas 问题。
问:内部交易(Internal Transaction)和普通交易有何不同?
答:内部交易并非由外部账户直接发起,而是在处理智能合约调用(如转账或执行函数)时由以太坊虚拟机(EVM)内部产生的资金流动。它不会单独出现在区块链上,而是作为主交易的一部分被记录。
问:如何判断一个地址是否是合约地址?
答:在 API 返回的 fromDetails 和 toDetails 数组中,每个地址都附带一个 isContract 布尔值字段。若为 true,则该地址为合约地址;若为 false,则为外部账户地址(EOA)。
问:能否通过此 API 查询任何区块链上的交易?
答:该 API 需要指定的 chainIndex 参数来标识不同的区块链网络(如以太坊主网、BSC、Polygon等)。只要该链被服务平台支持且您提供了正确的链标识和有效的交易哈希,就可以查询。
通过熟练掌握交易详情查询接口,开发者可以构建出功能强大、信息透明的区块链应用程序,为用户提供可靠的链上数据服务。