API 参考

TRON 节点内置 HTTP API、gRPC API 和 JSON-RPC API。生态服务还提供 TronGrid V1 API、Tronscan API 等托管和索引接口。

TRON 节点内置三类 API:HTTP APIgRPC APIJSON-RPC API。HTTP API 和 gRPC API 默认开启,端口由节点 config.conf 配置;JSON-RPC API 默认关闭,需要在 node.jsonrpc 配置块中手动开启。

如果跳出标准节点接口,从生态接入角度看,TronGrid 还提供 TronGrid V1 API,Tronscan 也提供 Tronscan API。这些接口由对应项目方开发和维护,通常在标准节点 API 之上提供更多高性能、实用的扩展 API,例如预索引历史数据、事件检索、账户与交易聚合查询等能力,可以更好地满足不同业务场景的查询需求,也被社区广泛使用。

📘

前置阅读


API 分层

层级API提供方默认状态典型入口适用场景
节点内置HTTP APIjava-tron 节点默认开启FullNode: :8090;Solidity: :8091标准读写接口、SDK 后端、交易构建与广播
节点内置gRPC APIjava-tron 节点默认开启FullNode: :50051;Solidity: :50061高性能服务端集成、强类型客户端、流式能力
节点内置JSON-RPC APIjava-tron 节点默认关闭FullNode: :8545;Solidity: :8555(手动开启)复用以太坊生态工具链
生态服务TronGrid V1 APITronGrid托管服务https://api.trongrid.io/v1/...账户历史、TRC-20 转账、事件日志等预索引数据
生态服务Tronscan APITronscan托管服务Tronscan 服务端接口浏览器数据、聚合统计、展示型查询

这些 API 最终读取同一条 TRON 链上的数据,但它们的传输协议、服务高度、接口覆盖范围和运营方不同。生产系统通常组合使用:写入热路径走节点 HTTP 或 gRPC;充值入账、财务和托管余额读取走 Solidity 接口;历史流水和事件检索可接入 TronGrid V1 API 或自建索引器。


节点 HTTP API

HTTP API 是 java-tron 节点提供的标准 JSON-over-HTTP 接口。它包含两组最常用的路径:

路径前缀服务高度默认端口用途
/wallet/最新区块(链头)8090构建交易、广播交易、查询最新状态
/walletsolidity/最新已固化区块8091查询已固化账户、区块、交易和资源状态

FullNode HTTP 和 Solidity HTTP 的接口名通常一一对应。例如,查询账户最新状态使用 POST /wallet/getaccount,查询已固化状态使用 POST /walletsolidity/getaccount

例如,查询账户最新状态可以调用 FullNode HTTP:

curl -X POST https://api.shasta.trongrid.io/wallet/getaccount \
  -H "Content-Type: application/json" \
  -d '{
    "address": "TBRmnXKMEVfQ8XeQA2NroC9cGi77TvPbNb",
    "visible": true
  }'

如果要查询已固化状态,将路径换成 /walletsolidity/getaccount

写入操作只走 FullNode HTTP,例如:

POST /wallet/createtransaction
POST /wallet/triggersmartcontract
POST /wallet/broadcasttransaction

Solidity HTTP 只提供读取能力,适合需要最终状态的交易确认、余额对账和区块回填。对需要最终确认的状态变更,不要用最新链头直接作为最终依据;应等包含该交易的区块固化后,通过 /walletsolidity/ 查询交易回执或区块数据。

FullNode HTTP API 参考

SolidityNode HTTP API 参考


FullNode 与 SolidityNode 选择指南

FullNode 和 SolidityNode 读取同一条 TRON 链,但服务高度和接口能力不同。选择时先判断操作是否会改变链上状态,再判断读取结果是否必须来自已固化区块。

需要完成的任务推荐接口原因
构建转账、质押、投票、合约调用等写入交易FullNode HTTP 或 FullNode gRPC只有 FullNode 服务提供交易构建和广播能力
广播已签名交易FullNode HTTP 或 FullNode gRPC广播类接口只在 FullNode 服务中提供
展示最新余额、最新区块或开发调试状态FullNode HTTP、FullNode gRPC 或 JSON-RPC读取节点当前看到的最新链头,延迟低但可能尚未固化
确认交易最终结果Solidity HTTP 或 Solidity gRPC返回已固化区块中的交易和 receipt,更适合作为最终状态依据
对账账户、资源或区块扫描结果Solidity HTTP 或 Solidity gRPC避免把未固化链头状态写入最终账本
查询账户历史、TRC-20 转账历史、Event 或内部交易历史TronGrid V1 API 或自建索引器这些是预索引历史数据,节点原生接口通常只返回当前状态或区块级数据

广播接口返回 result: true 只表示节点接受交易,不代表交易已打包或执行成功。完整确认路径见 交易签名与广播——API 工作流


节点 gRPC API

gRPC API 由 java-tron 节点直接提供,默认开启。它与 HTTP API 面向同一类节点能力,但使用 Protocol Buffers 和 gRPC 传输,适合对吞吐、延迟、类型约束或服务端集成稳定性要求更高的后端系统。

gRPC 服务服务高度默认端口用途
FullNode gRPC最新区块(链头)50051最新状态读取、交易构建与广播
Solidity gRPC最新已固化区块50061已固化状态读取

HTTP API 与 gRPC API 都包含 FullNode 和 Solidity 两类服务。你可以按团队技术栈选择协议:Web 后端和脚本通常先用 HTTP;Java、Go、服务端索引器或高吞吐任务可以优先考虑 gRPC。

在 Java 或其他 JVM 后端中,通常可以直接使用 Trident。Trident 是 TRON 的 Java SDK,封装了节点 gRPC 接口、交易构建、签名、广播和智能合约调用能力,适合后端服务、索引器和批处理任务接入 TRON 网络。更多底层 API 细节可参考 Trident 官方文档

通过 gRPC 调用 TRON


节点 JSON-RPC API

JSON-RPC API 可以理解为面向 Ethereum 兼容场景的一组轻量接口,覆盖节点能力中的部分 EVM 风格查询与调用场景。它便于复用 Web3.js、ethers、viem 等以太坊生态工具链。由于 TRON 与 Ethereum 的底层机制不同,部分 Ethereum JSON-RPC 方法在 TRON 上没有对应实现,或行为存在差异。

JSON-RPC API 默认关闭。自建节点使用前,需要在 config.conf 中开启:

node {
  jsonrpc {
    httpFullNodeEnable = true
    httpFullNodePort = 8545
    httpSolidityEnable = true
    httpSolidityPort = 8555
  }
}

自建节点的 JSON-RPC 服务运行在对应端口的根路径,例如 http://<host>:8545/。TronGrid 代理的 JSON-RPC 使用 https://api.trongrid.io/jsonrpc/jsonrpc 是 TronGrid 网关路径,不是自建 java-tron 节点的通用路径。

JSON-RPC 适合迁移以太坊工具链。它覆盖的是部分 EVM 风格接口,不是节点 HTTP API 或 gRPC API 的完整替代品;如果业务需要更完整的节点能力,应结合 HTTP API 或 gRPC API 使用。

JSON-RPC API 参考

TRON 与以太坊对比


生态 API

TronGrid V1 API

TronGrid 是 TRON 生态中常用的托管节点与索引服务。除代理标准节点接口外,TronGrid V1 API 还提供原生节点不直接提供的预索引数据,例如账户交易历史、TRC-20 / TRC-721 转账历史、合约事件和内部交易查询。

TronGrid V1 API 通常以 /v1/ 开头,例如:

GET /v1/accounts/{address}/transactions
GET /v1/accounts/{address}/transactions/trc20
GET /v1/contracts/{address}/events

TronGrid 是托管节点服务,调用时通常需要 TRON-PRO-API-KEY,访问速率和额度按 Key 配置。

TronGrid V1 API 概览

TronGrid 节点服务和扩展 API

Tronscan API

Tronscan API 由 Tronscan 维护,面向区块浏览器数据、聚合统计、账户展示、交易展示和生态查询等场景。它不是 java-tron 节点内置 API,也不应和 FullNode HTTP、gRPC 或 JSON-RPC 混为一类。使用 Tronscan API 时,应以 Tronscan 当前公开文档和服务限制为准。

TRONSCAN API 文档


选型建议

构建和广播交易

使用 FullNode HTTP 或 FullNode gRPC。常见 HTTP 流程是:

  1. 调用 /wallet/createtransaction/wallet/triggersmartcontract 等接口构建未签名交易。
  2. 在客户端本地签名交易。
  3. 调用 /wallet/broadcasttransaction 广播已签名交易。

交易完整生命周期、签名注意事项和代码示例,参见交易签名与广播——API 工作流

查询已固化数据

使用 Solidity HTTP 或 Solidity gRPC。HTTP 路径通常以 /walletsolidity/ 开头,例如:

POST /walletsolidity/getaccount
POST /walletsolidity/gettransactioninfobyid
POST /walletsolidity/getblockbynum

已固化区块通常比最新链头落后约 1 分钟。对交易确认、余额对账、报表生成和区块监听等需要最终状态的流程(如交易所、钱包方等),应基于已固化数据判断最终状态。

共识与 DPoS § 区块固化

复用以太坊工具链

使用 JSON-RPC API。它适合 Web3.js、ethers、viem 等工具接入 TRON,但覆盖范围窄于节点 HTTP 和 gRPC。对于 JSON-RPC 未覆盖的接口能力,应结合 HTTP API 或 gRPC API 使用。

查询账户历史和事件

如果你不想自建索引器,可以使用 TronGrid V1 API。它适合快速查询账户历史、TRC-20 转账、事件日志和内部交易。高流量生产环境需要关注 API Key、限流、分页和数据延迟。

需要更高可控性时,也可以直接扫描 SolidityNode 的已固化区块,并在本地维护索引库。

集成指南


请求格式和地址格式

HTTP API 和 TronGrid V1 API 使用 JSON 请求和响应。大多数节点 HTTP API 支持 visible 参数:

{
  "address": "T...",
  "visible": true
}
  • visible: true:地址使用 Base58Check 格式,通常以 T 开头。
  • visible: false 或省略:地址使用 hex 格式,通常以 41 开头。

JSON-RPC API 遵循以太坊 JSON-RPC 风格,数值和字节数据通常以 0x 十六进制字符串表示。TRON 地址在 JSON-RPC 中也会按兼容规则转换。

地址与数据编码


资源预算

每笔写入交易都会消耗带宽或能量:普通转账主要消耗带宽,智能合约调用主要消耗能量。调用合约时,fee_limit 限制本次交易可使用的能量上限,覆盖质押能量和燃烧 TRX 可换算出的能量,不是简单的“最多燃烧多少 TRX”。该值设置过低时,交易可能因能量不足执行失败。

资源模型


相关资源