ERPC TRON RPC 端點文件

TRON RPC 端點文件

將 ERPC 作為您的 TRON RPC 端點,用於處理 HTTP JSON-RPC 請求與 TRON HTTP API。TRON RPC 是 ERPC 在 Global Edge Blockchain Infrastructure 中提供的 RPC APIs 之一,API key 可以在 ERPC Web Dashboard 中管理。
您可以直接使用與 Solana、Ethereum 和 Avalanche 相同的 RPC key。
請透過 api-key 查詢參數傳遞 API key,或以 Authorization: Bearer <YOUR_API_KEY> 傳送。兩者同時存在時,以查詢參數為準。

端點

將 JSON-RPC 2.0 請求以 HTTP POST 方式傳送至:
text
https://edge.erpc.global/tron?api-key=<YOUR_API_KEY>
或傳送至專用主機:
text
https://tron.erpc.global?api-key=<YOUR_API_KEY>
在專用主機上,/ 與 /jsonrpc 指向同一個 JSON-RPC 端點,TRON HTTP API 位於 /wallet/<name> 與 /walletsolidity/<name> 下。在 edge.erpc.global 上,相同的路徑帶有 /tron 前綴:/tron、/tron/jsonrpc、/tron/wallet/<name> 與 /tron/walletsolidity/<name>。TRON HTTP API 的 POST 請求本文必須是 JSON 物件。其他路徑會收到 HTTP 400 回應。

範例

以下是在查詢參數中帶入 API key 的 HTTP 請求範例。
bash
curl 'https://edge.erpc.global/tron?api-key=<YOUR_API_KEY>' --header 'Content-Type: application/json' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"eth_blockNumber"
}'
以下是在 Authorization 標頭中帶入 API key 的同一請求。
bash
curl 'https://edge.erpc.global/tron' --header 'Content-Type: application/json' --header 'Authorization: Bearer <YOUR_API_KEY>' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"eth_blockNumber"
}'
以下是 TRON HTTP API 範例。
bash
curl 'https://edge.erpc.global/tron/wallet/getnowblock?api-key=<YOUR_API_KEY>' --header 'Content-Type: application/json' --data '{}'
您可以在 ERPC Web Dashboard 上取得和檢視您的 API key。

批次請求

每次 HTTP 請求支援包含 1 到 100 個呼叫的 JSON-RPC 批次請求。每次呼叫都需要有自己的 id,且同一批次內的 id 值不可重複。批次中的每次呼叫都會作為單獨的呼叫計量。請求本文最大為 1 MiB。批次請求需傳送至 /jsonrpc。每個 TRON HTTP API 請求只包含一次呼叫,並計為一次呼叫。

用量計量

用量以 token 計量,token 費率可能因方法而異。HTTP 批次請求中的每次呼叫都會單獨計量。每個 TRON HTTP API 請求計為一次呼叫。

Free 方案限制

在 Free 方案中,您的帳戶每 10 秒可以傳送一個請求。此限制依帳戶計算,而不是依端點計算,因此傳送至另一條鏈的請求也可能計入此限制。過早傳送的請求會收到 HTTP 429 回應,retry-after 標頭會給出以秒為單位的等待時間。
在 Free 方案中,包含兩個或更多 JSON-RPC 呼叫的請求會收到 HTTP 429 回應,且其中的呼叫都不會被傳送:每個呼叫都會收到錯誤碼為 -32041 的 JSON-RPC 錯誤。請改為逐個傳送這些呼叫。

支援的方法

此端點提供以下 38 個方法。eth_*、net_* 與 web3_* 方法是傳送至 / 或 /jsonrpc 的 JSON-RPC 呼叫。/wallet/* 與 /walletsolidity/* 項目是 TRON HTTP API 路徑,需以 JSON 物件作為 POST 請求本文呼叫。
  • eth_* (19): eth_blockNumber, eth_call, eth_chainId, eth_estimateGas, eth_gasPrice, eth_getBalance, eth_getBlockByHash, eth_getBlockByNumber, eth_getBlockReceipts, eth_getBlockTransactionCountByHash, eth_getBlockTransactionCountByNumber, eth_getCode, eth_getLogs, eth_getStorageAt, eth_getTransactionByBlockHashAndIndex, eth_getTransactionByBlockNumberAndIndex, eth_getTransactionByHash, eth_getTransactionReceipt, eth_syncing
  • net_* (3): net_listening, net_peerCount, net_version
  • web3_* (2): web3_clientVersion, web3_sha3
  • /wallet/* (9): /wallet/broadcasthex, /wallet/broadcasttransaction, /wallet/estimateenergy, /wallet/getaccount, /wallet/getblockbynum, /wallet/getnowblock, /wallet/gettransactionbyid, /wallet/gettransactioninfobyid, /wallet/triggerconstantcontract
  • /walletsolidity/* (5): /walletsolidity/getaccount, /walletsolidity/getblockbynum, /walletsolidity/getnowblock, /walletsolidity/gettransactionbyid, /walletsolidity/gettransactioninfobyid
未列出的方法或路徑會收到 HTTP 400 回應。

回應狀態碼

HTTP 狀態碼意義
200上游 JSON-RPC 回應。JSON-RPC 錯誤同樣以 HTTP 200 返回:保留請求的 id 與 error.code,error.message 為 ERPC upstream error,且不返回 error.data
400不在「支援的方法」清單中的方法或路徑、無效的 JSON-RPC 請求、空批次或超過 100 個呼叫的批次、批次中重複的 id,或超過 1 MiB 的請求本文
401缺少 API key 或 API key 無效,或不符合該 key 的 IP 或 Origin 限制
405使用了 POST 以外的請求方法
426請求了 WebSocket Upgrade。此端點僅支援 HTTP
429已被限速,包括上文的 Free 方案限制:每 10 秒超過一個請求,或一個請求中包含兩個或更多呼叫。若有 retry-after 標頭,請等待其指定的秒數
502上游請求無法完成:上游回應失敗、回應超過 8 MiB,或 30 秒內未回應。TRON HTTP API 回應回報失敗時,同樣返回 502
503服務暫時無法使用

TRON RPC 方法和文件

有關標準方法、參數和規範的完整列表,請參閱官方文件。