Документация TRON RPC endpoint | ERPC

Документация TRON RPC endpoint

Используйте ERPC как ваш TRON RPC endpoint для HTTP JSON-RPC запросов и TRON HTTP API. TRON RPC является частью RPC APIs ERPC в рамках нашей Global Edge Blockchain Infrastructure, а управление API key доступно через ERPC Web Dashboard.
Вы можете использовать тот же RPC key, что и для Solana, Ethereum и Avalanche.
Передайте ваш API key в параметре запроса api-key или отправьте его как Authorization: Bearer <YOUR_API_KEY>. Если указаны оба варианта, используется параметр запроса.

Endpoints

Отправляйте запросы 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 endpoint, а TRON HTTP API обслуживается под /wallet/<name> и /walletsolidity/<name>. На edge.erpc.global те же пути идут после префикса /tron: /tron, /tron/jsonrpc, /tron/wallet/<name> и /tron/walletsolidity/<name>. Тело POST-запроса к TRON HTTP API должно быть JSON-объектом. На другие пути возвращается HTTP 400.

Примеры

Пример HTTP-запроса с API key в параметре запроса.
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"
}'
Тот же запрос с API key в заголовке Authorization.
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 '{}'
Получить и проверить ваш API key можно на ERPC Web Dashboard: ERPC Web Dashboard

Batch-запросы

Поддерживаются batch-пакеты JSON-RPC от 1 до 100 вызовов на один HTTP-запрос. У каждого вызова должен быть свой id, и значения id внутри одного batch не должны повторяться. Каждый вызов в batch тарифицируется как отдельный вызов. Размер тела запроса — до 1 MiB. Batch-запросы отправляются на /jsonrpc. Запрос к TRON HTTP API содержит один вызов и тарифицируется как один вызов.

Тарификация использования

Использование тарифицируется в токенах, и ставка в токенах может различаться в зависимости от метода. Каждый вызов в HTTP batch тарифицируется отдельно. Каждый запрос к TRON HTTP API тарифицируется как один вызов.

Ограничения тарифа Free

На тарифе Free ваш аккаунт может отправлять один запрос в 10 секунд. Лимит считается по аккаунту, а не по endpoint, поэтому запрос к другой сети тоже может засчитываться в этот лимит. На запрос, отправленный раньше, возвращается HTTP 429, а заголовок retry-after указывает время ожидания в секундах.
На тарифе Free на запрос, содержащий два или более вызова JSON-RPC, возвращается HTTP 429, и ни один из его вызовов не отправляется: каждый вызов получает ошибку JSON-RPC с кодом -32041. Отправляйте такие вызовы по одному.

Поддерживаемые методы

Endpoint обслуживает следующие 38 методов. Методы eth_*, net_* и web3_* — это вызовы JSON-RPC, которые отправляются на / или /jsonrpc. Записи /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, пустой batch или batch из более чем 100 вызовов, повторяющийся id в batch или тело запроса больше 1 MiB.
401API key отсутствует или недействителен либо не выполнено ограничение по IP или Origin, заданное для ключа.
405HTTP-метод запроса, отличный от POST.
426Запрошен WebSocket Upgrade. Endpoint работает только по HTTP.
429Ограничение скорости, включая описанные выше ограничения тарифа Free: более одного запроса в 10 секунд или два и более вызова в одном запросе. Если в ответе есть заголовок retry-after, подождите указанное в нём число секунд.
502Не удалось выполнить upstream-запрос: upstream вернул ответ с ошибкой, ответ превышает 8 MiB или ответа нет в течение 30 секунд. Если ответ TRON HTTP API сообщает об ошибке, также возвращается 502.
503Сервис временно недоступен.

Методы TRON RPC и документация

Полный список стандартных методов, параметров и спецификаций см. в официальной документации.