Skip to main content

Free Tron RPC (TRX)

Popular

Explore Tron, a blockchain optimized for content sharing and decentralized applications. Build fast, low-cost dApps using its RPC gateway.

99.9%
9
24/7
FREE
Gateway

Connect to Tron

Access reliable, enterprise-grade endpoints that power your dApp with ultra-low latency and 99.9% uptime.

Connect to Tron Gateway

Make your first RPC call on Tron's Blockchain Gateway.

Mainnet

Mainnet
Mainnet Explorer
JSON-RPC
https://tron-mainnet.gateway.tatum.io/jsonrpc
HTTP API
https://tron-mainnet.gateway.tatum.io/wallet
Solidity HTTP API
https://tron-mainnet.gateway.tatum.io/walletsolidity

Shasta

Testnet
Shasta Explorer
JSON-RPC
https://tron-shasta.gateway.tatum.io/jsonrpc
HTTP API
https://tron-shasta.gateway.tatum.io/wallet
Solidity HTTP API
https://tron-shasta.gateway.tatum.io/walletsolidity
JSON-RPC
https://tron-nile.gateway.tatum.io/jsonrpc
HTTP API
https://tron-nile.gateway.tatum.io/wallet
Solidity HTTP API
https://tron-nile.gateway.tatum.io/walletsolidity

* Rate limit enabled - perfect for testing and development. For production, we recommend to Upgrade.

Ready for production?

Get 200 requests/second, priority support and advanced blockchain features.

Global Load Balancer

Route to nearest node

Batch RPC Calls

Multiple requests at once

Archive Nodes

Historical blockchain data

Debug & Trace

Advanced debugging

Advanced Analytics

Usage & performance

Bring Your Own RPC

Custom RPC gateways

Upgrade
Get Free API Key

Increase your limit and access all network features in Tatum Development Platform.

Smart Contract Tools on Tron

Deploy, create, and interact with smart contracts on Tron.

Accessible to Everyone

No signup. No paywalls. Just RPC that works. Great ideas come from everywhere.

Our Mission

With love by Tatum

Method reference

Tron methods

Every method the Tron gateway accepts, grouped by interface. 256 in total, read live from the node rather than kept by hand.

Mainnet is the live Tron network. Every transaction it accepts is final, and every TRX balance it reports is real money.

Tron runs 2 test networks here, Shasta and Nile. All of them answer the same methods as Mainnet, so pick whichever your tooling already targets and switch the URL when you go live.

Tron answers over 2 interfaces: JSON-RPC and REST. Each is listed once below with every method it accepts. The endpoints differ per network, and all of them are in the gateway list above.

What sits between you and Tron

A node is a machine running Tron with a copy of the chain. Your code cannot ask the chain directly, it asks a node. The gateway picks a healthy one for every call, so you point at one URL instead of one machine.

  • One URL, nothing to run or keep patched yourself.
  • Calls routed to a node that is up and in sync.
  • A failing node is skipped rather than returned to you as an error.

JSON-RPC

34 methods
https://tron-mainnet.gateway.tatum.io/jsonrpc

The default. Every wallet, library and framework speaks it, and it is what you want unless you specifically need something else.

One POST carries a method name, its parameters and an id, and the response comes back on the same connection carrying that same id. Requests are independent, so there is no session to keep alive and nothing to reconnect, which is why it runs unchanged behind a load balancer or inside a serverless function. Send an array instead of a single object and the node works through the whole batch in one round trip.

Where it fits

  • Anything your library already does for you. ethers, web3.js, viem and their equivalents all target this.
  • Batching reads. One array of twenty calls costs one round trip instead of twenty.
  • Stateless and serverless deployments, because nothing has to stay connected between calls.
  • Historical queries, by passing a block number where you would otherwise pass latest.

Trade-offs

  • It cannot push. Finding out that a block landed means polling for it, or moving to WebSocket.
  • Wide log queries get refused. Page through in fixed block windows and merge the results yourself.
  • Batch responses may come back in any order. Match them on id, never on position.

Enabled and tested methods

Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.

buildTransaction
Builds an unsigned transaction from a high-level request.
eth_blockNumber
Returns the height of the most recent block.
eth_call
Executes a read-only call against current state, without sending a transaction or spending gas.
eth_callMany
Executes several calls in sequence against the same state snapshot.
eth_chainId
Returns the chain ID used for replay-protected transaction signing.
eth_estimateGas
Estimates how much gas a transaction would consume, without submitting it.
eth_feeHistory
Returns base fee and priority fee percentiles across a range of recent blocks.
eth_gasPrice
Returns the current gas price in wei.
eth_getBalance
Returns the native token balance of an address at a given block.
eth_getBlockByHash
Returns a block identified by its hash.
eth_getBlockByNumber
Returns a block identified by its height.
eth_getBlockTransactionCountByHash
Returns how many transactions a block contains, located by hash.
eth_getBlockTransactionCountByNumber
Returns how many transactions a block contains, located by height.
eth_getCode
Returns the contract bytecode deployed at an address.
eth_getLogs
Returns event logs matching a filter of address, topics and block range.
eth_getProof
Returns a Merkle proof for an account and any of its storage slots.
eth_getStorageAt
Reads a single storage slot from a contract.
eth_getTransactionByBlockHashAndIndex
Returns a transaction by its position in a block, located by hash.
eth_getTransactionByBlockNumberAndIndex
Returns a transaction by its position in a block, located by height.
eth_getTransactionByHash
Returns a transaction identified by its hash.
eth_getTransactionCount
Returns how many transactions an address has sent, which is its next nonce.
eth_getTransactionReceipt
Returns the receipt of a mined transaction: status, gas used, and emitted logs.
eth_getUncleByBlockHashAndIndex
Returns an uncle (ommer) block by parent hash and index.
eth_getUncleByBlockNumberAndIndex
Returns an uncle (ommer) block by parent height and index.
eth_getUncleCountByBlockHash
Returns how many uncles a block has, located by hash.
eth_getUncleCountByBlockNumber
Returns how many uncles a block has, located by height.
eth_maxPriorityFeePerGas
Suggests a priority fee (tip) per gas for timely inclusion.
eth_sendRawTransaction
Broadcasts an already signed, serialized transaction to the network.
eth_signTypedData
Signs EIP-712 structured data.
eth_signTypedData_v3
Signs EIP-712 structured data using the v3 encoding.
eth_syncing
Reports whether the node is still syncing, and how far behind it is.
net_peerCount
Returns how many peers the node is currently connected to.
net_version
Returns the network ID the node is connected to.
web3_clientVersion
Returns the node client name and version string.

Common JSON-RPC errors

What you are most likely to hit calling this interface, and what to do about it.

-32700
Parse error. The request body was not valid JSON. Check that the body is serialised JSON and that Content-Type is application/json.
-32600
Invalid request. The JSON parsed, but it is not a well-formed JSON-RPC call. Include jsonrpc, method and id fields. A batch must be a non-empty array.
-32601
Method not found. This node does not expose the method you called. Check the spelling and the namespace, and confirm the method is in the list above for this network. Tracing methods in particular are not enabled everywhere.
-32602
Invalid params. The method exists but the arguments are wrong. Check argument order and types. Most EVM methods want hex-encoded quantities, and a block parameter such as latest or a hex height.
-32603
Internal error. The node failed while handling an otherwise valid request. Retry with backoff. If it persists on one method, it is usually that method rather than the node.
-32000
Server error. A catch-all the node uses for execution failures, most often a reverted call or a request over a limit. Read the accompanying message. Execution reverted means your call failed on chain, not in transport. Narrow the block range if you are querying logs.
HTTP 429
Rate limited. You have exceeded the free tier request allowance. Back off and retry, batch reads into single calls, or move to a dedicated endpoint for production traffic.
HTTP 413
Payload too large. The request body exceeded what the node accepts. Split large batches into smaller ones.

REST

222 methods
https://tron-mainnet.gateway.tatum.io/walletsolidity

Every resource has its own URL, so a request is just an address you can open.

Paste it into a browser, curl it, or bookmark it. There is no body to construct and no method name to look up, and because a read is a plain GET, ordinary HTTP caching applies at the CDN and in your own client. Responses are JSON, and the path itself usually tells you what you are getting.

Where it fits

  • Getting oriented on an unfamiliar chain without writing any code first.
  • Caching, because a GET can be cached by anything sitting between you and the node.
  • Debugging, since the request that failed is a URL you can paste to a colleague.

Trade-offs

  • You get exactly what the endpoint returns. There is no way to ask for less, or for more.
  • Building a full picture takes several round trips where one batched JSON-RPC call would do.
  • Paths carry version prefixes and shift between node releases more readily than method names do.

Enabled and tested methods

Read live from the endpoint, so this is what it actually serves today rather than what the protocol allows in principle. Anything not on this list returns a method-not-found error.

GET /accountpermissionupdate
Builds a transaction that changes the permission structure of an account.
GET /broadcasthex
Broadcasts a signed transaction supplied as raw hex.
GET /broadcasttransaction
Broadcasts a signed transaction to the network.
GET /cancelallunfreezev2
Cancels all pending unstaking requests and restakes the funds.
GET /clearabi
Removes the stored ABI from a deployed contract.
GET /createaccount
Builds a transaction that activates a new account on chain.
GET /createassetissue
Builds a transaction that issues a new TRC-10 token.
GET /createshieldedcontractparameters
Builds the zero-knowledge parameters for a shielded TRC-20 transfer.
GET /createshieldedcontractparameterswithoutask
Builds shielded TRC-20 parameters without the spend authority key.
GET /createspendauthsig
Creates a spend authority signature for a shielded transaction.
GET /createtransaction
Builds an unsigned TRX transfer transaction.
GET /createwitness
Builds a transaction that applies to become a block-producing witness.
GET /delegateresource
Builds a transaction that delegates bandwidth or energy to another account.
GET /deploycontract
Builds a transaction that deploys a smart contract.
GET /estimateenergy
Estimates the energy a contract call will consume.
GET /exchangecreate
Builds a transaction that creates a Bancor exchange pair.
GET /exchangeinject
Builds a transaction that adds liquidity to an exchange pair.
GET /exchangetransaction
Builds a transaction that trades against an exchange pair.
GET /exchangewithdraw
Builds a transaction that removes liquidity from an exchange pair.
GET /freezebalancev2
Builds a transaction that stakes TRX for bandwidth or energy.
GET /getaccount
Returns an account, including balances, permissions and resources.
GET /getaccountbalance
Returns the TRX balance of an account at a given block.
GET /getaccountbyid
Returns an account looked up by its account ID.
GET /getaccountnet
Returns the bandwidth available to and used by an account.
GET /getaccountresource
Returns the bandwidth and energy available to and used by an account.
GET /getapprovedlist
Returns the addresses that have signed a multi-signature transaction.
GET /getassetissuebyaccount
Returns the TRC-10 tokens issued by an account.
GET /getassetissuebyid
Returns a TRC-10 token by its ID.
GET /getassetissuebyname
Returns a TRC-10 token by its name.
GET /getassetissuelist
Lists every TRC-10 token on the network.
GET /getassetissuelistbyname
Lists TRC-10 tokens sharing a given name.
GET /getavailableunfreezecount
Returns how many further unstaking requests an account may make.
GET /getbandwidthprices
Returns the historical bandwidth price schedule.
GET /getblock
Returns a block by height or hash.
GET /getblockbalance
Returns the balance changes applied by a block.
GET /getblockbyid
Returns a block by its hash.
GET /getblockbylatestnum
Returns the most recent blocks, up to a given count.
GET /getblockbylimitnext
Returns the blocks in a height range.
GET /getblockbynum
Returns a block by its height.
GET /getBrokerage
Returns the share of block rewards a witness keeps rather than paying to voters.
GET /getburntrx
Returns the total TRX burnt in fees.
GET /getcandelegatedmaxsize
Returns the maximum resource an account can still delegate.
GET /getcanwithdrawunfreezeamount
Returns how much unstaked TRX an account can withdraw now.
GET /getchainparameters
Returns the network parameters currently in force.
GET /getcontract
Returns a deployed contract, including its ABI and bytecode.
GET /getcontractinfo
Returns a deployed contract along with its runtime code and usage.
GET /getdelegatedresource
Returns the resource delegated between two accounts.
GET /getdelegatedresourceaccountindex
Returns the accounts an address has delegated resource to or from.
GET /getdelegatedresourceaccountindexv2
Returns delegation relationships under the Stake 2.0 model.
GET /getdelegatedresourcev2
Returns resource delegated between two accounts under Stake 2.0.
GET /getdiversifier
Generates a diversifier used when deriving a shielded address.
GET /getenergyprices
Returns the historical energy price schedule.
GET /getexchangebyid
Returns a Bancor exchange pair by its ID.
GET /getincomingviewingkey
Derives the incoming viewing key for a shielded account.
GET /getmarketorderbyaccount
Lists the open market orders placed by an account.
GET /getmarketorderbyid
Returns a market order by its ID.
GET /getmarketorderlistbypair
Lists the open orders for a trading pair.
GET /getmarketpairlist
Lists the trading pairs available on the built-in market.
GET /getmarketpricebypair
Returns the current prices for a trading pair.
GET /getnewshieldedaddress
Generates a new shielded address and its keys.
GET /getnextmaintenancetime
Returns when the next maintenance period, which reorders witnesses, begins.
GET /getnkfromnsk
Derives the nullifier key from a nullifier spending key.
GET /getnodeinfo
Returns node version, peer count and sync state.
GET /getnowblock
Returns the most recent block.
GET /getpaginatedassetissuelist
Lists TRC-10 tokens a page at a time.
GET /getpaginatedexchangelist
Lists Bancor exchange pairs a page at a time.
GET /getpaginatedproposallist
Lists governance proposals a page at a time.
GET /getpendingsize
Returns how many transactions are waiting in the pending queue.
GET /getproposalbyid
Returns a governance proposal by its ID.
GET /getrcm
Generates a random commitment trapdoor for a shielded note.
GET /getReward
Returns the unclaimed voting rewards of an account.
GET /getsignweight
Returns the accumulated signature weight of a multi-signature transaction.
GET /gettransactionbyid
Returns a transaction by its ID.
GET /gettransactioncountbyblocknum
Returns how many transactions a block contains.
GET /gettransactionfrompending
Returns a transaction that is still in the pending queue.
GET /gettransactioninfobyblocknum
Returns execution results for every transaction in a block.
GET /gettransactioninfobyid
Returns the execution result of a transaction, including fees and logs.
GET /gettransactionlistfrompending
Lists the transaction IDs waiting in the pending queue.
GET /gettriggerinputforshieldedtrc20contract
Builds the call data for a shielded TRC-20 contract trigger.
GET /getzenpaymentaddress
Derives a shielded payment address from a viewing key and diversifier.
GET /isshieldedtrc20contractnotespent
Reports whether a shielded TRC-20 note has already been spent.
GET /listexchanges
Lists every Bancor exchange pair.
GET /listnodes
Lists the peer nodes the node knows about.
GET /listproposals
Lists every governance proposal.
GET /listwitnesses
Lists the witnesses and their vote counts.
GET /marketcancelorder
Builds a transaction that cancels an open market order.
GET /marketsellasset
Builds a transaction that places a sell order on the built-in market.
GET /participateassetissue
Builds a transaction that buys into a TRC-10 token sale.
GET /proposalapprove
Builds a transaction that votes on a governance proposal.
GET /proposalcreate
Builds a transaction that creates a governance proposal.
GET /proposaldelete
Builds a transaction that withdraws a governance proposal.
GET /scanshieldedtrc20notesbyivk
Scans a block range for shielded TRC-20 notes using an incoming viewing key.
GET /scanshieldedtrc20notesbyovk
Scans a block range for shielded TRC-20 notes using an outgoing viewing key.
GET /setaccountid
Builds a transaction that assigns a human-readable ID to an account.
GET /transferasset
Builds a transaction that transfers a TRC-10 token.
GET /triggerconstantcontract
Calls a contract read-only, without creating a transaction.
GET /triggersmartcontract
Builds a transaction that calls a smart contract.
GET /undelegateresource
Builds a transaction that reclaims delegated bandwidth or energy.
GET /unfreezeasset
Builds a transaction that releases previously frozen TRC-10 tokens.
GET /unfreezebalance
Builds a transaction that unstakes TRX under the original staking model.
GET /unfreezebalancev2
Builds a transaction that unstakes TRX under Stake 2.0.
GET /updateaccount
Builds a transaction that renames an account.
GET /updateasset
Builds a transaction that updates the settings of a TRC-10 token.
GET /updateBrokerage
Builds a transaction that changes the reward share a witness keeps.
GET /updateenergylimit
Builds a transaction that changes the energy a contract may consume per call.
GET /updatesetting
Builds a transaction that changes the consume-user-resource percentage of a contract.
GET /updatewitness
Builds a transaction that updates the URL of a witness.
GET /validateaddress
Checks whether an address is well formed and returns its encodings.
GET /votewitnessaccount
Builds a transaction that casts votes for witnesses.
GET /withdrawbalance
Builds a transaction that claims accumulated rewards.
GET /withdrawexpireunfreeze
Builds a transaction that withdraws unstaked TRX once its lock has expired.
POST /accountpermissionupdate
Builds a transaction that changes the permission structure of an account.
POST /broadcasthex
Broadcasts a signed transaction supplied as raw hex.
POST /broadcasttransaction
Broadcasts a signed transaction to the network.
POST /cancelallunfreezev2
Cancels all pending unstaking requests and restakes the funds.
POST /clearabi
Removes the stored ABI from a deployed contract.
POST /createaccount
Builds a transaction that activates a new account on chain.
POST /createassetissue
Builds a transaction that issues a new TRC-10 token.
POST /createshieldedcontractparameters
Builds the zero-knowledge parameters for a shielded TRC-20 transfer.
POST /createshieldedcontractparameterswithoutask
Builds shielded TRC-20 parameters without the spend authority key.
POST /createspendauthsig
Creates a spend authority signature for a shielded transaction.
POST /createtransaction
Builds an unsigned TRX transfer transaction.
POST /createwitness
Builds a transaction that applies to become a block-producing witness.
POST /delegateresource
Builds a transaction that delegates bandwidth or energy to another account.
POST /deploycontract
Builds a transaction that deploys a smart contract.
POST /estimateenergy
Estimates the energy a contract call will consume.
POST /exchangecreate
Builds a transaction that creates a Bancor exchange pair.
POST /exchangeinject
Builds a transaction that adds liquidity to an exchange pair.
POST /exchangetransaction
Builds a transaction that trades against an exchange pair.
POST /exchangewithdraw
Builds a transaction that removes liquidity from an exchange pair.
POST /freezebalancev2
Builds a transaction that stakes TRX for bandwidth or energy.
POST /getaccount
Returns an account, including balances, permissions and resources.
POST /getaccountbalance
Returns the TRX balance of an account at a given block.
POST /getaccountbyid
Returns an account looked up by its account ID.
POST /getaccountnet
Returns the bandwidth available to and used by an account.
POST /getaccountresource
Returns the bandwidth and energy available to and used by an account.
POST /getapprovedlist
Returns the addresses that have signed a multi-signature transaction.
POST /getassetissuebyaccount
Returns the TRC-10 tokens issued by an account.
POST /getassetissuebyid
Returns a TRC-10 token by its ID.
POST /getassetissuebyname
Returns a TRC-10 token by its name.
POST /getassetissuelist
Lists every TRC-10 token on the network.
POST /getassetissuelistbyname
Lists TRC-10 tokens sharing a given name.
POST /getavailableunfreezecount
Returns how many further unstaking requests an account may make.
POST /getbandwidthprices
Returns the historical bandwidth price schedule.
POST /getblock
Returns a block by height or hash.
POST /getblockbalance
Returns the balance changes applied by a block.
POST /getblockbyid
Returns a block by its hash.
POST /getblockbylatestnum
Returns the most recent blocks, up to a given count.
POST /getblockbylimitnext
Returns the blocks in a height range.
POST /getblockbynum
Returns a block by its height.
POST /getBrokerage
Returns the share of block rewards a witness keeps rather than paying to voters.
POST /getburntrx
Returns the total TRX burnt in fees.
POST /getcandelegatedmaxsize
Returns the maximum resource an account can still delegate.
POST /getcanwithdrawunfreezeamount
Returns how much unstaked TRX an account can withdraw now.
POST /getchainparameters
Returns the network parameters currently in force.
POST /getcontract
Returns a deployed contract, including its ABI and bytecode.
POST /getcontractinfo
Returns a deployed contract along with its runtime code and usage.
POST /getdelegatedresource
Returns the resource delegated between two accounts.
POST /getdelegatedresourceaccountindex
Returns the accounts an address has delegated resource to or from.
POST /getdelegatedresourceaccountindexv2
Returns delegation relationships under the Stake 2.0 model.
POST /getdelegatedresourcev2
Returns resource delegated between two accounts under Stake 2.0.
POST /getdiversifier
Generates a diversifier used when deriving a shielded address.
POST /getenergyprices
Returns the historical energy price schedule.
POST /getexchangebyid
Returns a Bancor exchange pair by its ID.
POST /getincomingviewingkey
Derives the incoming viewing key for a shielded account.
POST /getmarketorderbyaccount
Lists the open market orders placed by an account.
POST /getmarketorderbyid
Returns a market order by its ID.
POST /getmarketorderlistbypair
Lists the open orders for a trading pair.
POST /getmarketpairlist
Lists the trading pairs available on the built-in market.
POST /getmarketpricebypair
Returns the current prices for a trading pair.
POST /getnewshieldedaddress
Generates a new shielded address and its keys.
POST /getnextmaintenancetime
Returns when the next maintenance period, which reorders witnesses, begins.
POST /getnkfromnsk
Derives the nullifier key from a nullifier spending key.
POST /getnodeinfo
Returns node version, peer count and sync state.
POST /getnowblock
Returns the most recent block.
POST /getpaginatedassetissuelist
Lists TRC-10 tokens a page at a time.
POST /getpaginatedexchangelist
Lists Bancor exchange pairs a page at a time.
POST /getpaginatedproposallist
Lists governance proposals a page at a time.
POST /getpendingsize
Returns how many transactions are waiting in the pending queue.
POST /getproposalbyid
Returns a governance proposal by its ID.
POST /getrcm
Generates a random commitment trapdoor for a shielded note.
POST /getReward
Returns the unclaimed voting rewards of an account.
POST /getsignweight
Returns the accumulated signature weight of a multi-signature transaction.
POST /gettransactionbyid
Returns a transaction by its ID.
POST /gettransactioncountbyblocknum
Returns how many transactions a block contains.
POST /gettransactionfrompending
Returns a transaction that is still in the pending queue.
POST /gettransactioninfobyblocknum
Returns execution results for every transaction in a block.
POST /gettransactioninfobyid
Returns the execution result of a transaction, including fees and logs.
POST /gettransactionlistfrompending
Lists the transaction IDs waiting in the pending queue.
POST /gettriggerinputforshieldedtrc20contract
Builds the call data for a shielded TRC-20 contract trigger.
POST /getzenpaymentaddress
Derives a shielded payment address from a viewing key and diversifier.
POST /isshieldedtrc20contractnotespent
Reports whether a shielded TRC-20 note has already been spent.
POST /listexchanges
Lists every Bancor exchange pair.
POST /listnodes
Lists the peer nodes the node knows about.
POST /listproposals
Lists every governance proposal.
POST /listwitnesses
Lists the witnesses and their vote counts.
POST /marketcancelorder
Builds a transaction that cancels an open market order.
POST /marketsellasset
Builds a transaction that places a sell order on the built-in market.
POST /participateassetissue
Builds a transaction that buys into a TRC-10 token sale.
POST /proposalapprove
Builds a transaction that votes on a governance proposal.
POST /proposalcreate
Builds a transaction that creates a governance proposal.
POST /proposaldelete
Builds a transaction that withdraws a governance proposal.
POST /scanshieldedtrc20notesbyivk
Scans a block range for shielded TRC-20 notes using an incoming viewing key.
POST /scanshieldedtrc20notesbyovk
Scans a block range for shielded TRC-20 notes using an outgoing viewing key.
POST /setaccountid
Builds a transaction that assigns a human-readable ID to an account.
POST /transferasset
Builds a transaction that transfers a TRC-10 token.
POST /triggerconstantcontract
Calls a contract read-only, without creating a transaction.
POST /triggersmartcontract
Builds a transaction that calls a smart contract.
POST /undelegateresource
Builds a transaction that reclaims delegated bandwidth or energy.
POST /unfreezeasset
Builds a transaction that releases previously frozen TRC-10 tokens.
POST /unfreezebalance
Builds a transaction that unstakes TRX under the original staking model.
POST /unfreezebalancev2
Builds a transaction that unstakes TRX under Stake 2.0.
POST /updateaccount
Builds a transaction that renames an account.
POST /updateasset
Builds a transaction that updates the settings of a TRC-10 token.
POST /updateBrokerage
Builds a transaction that changes the reward share a witness keeps.
POST /updateenergylimit
Builds a transaction that changes the energy a contract may consume per call.
POST /updatesetting
Builds a transaction that changes the consume-user-resource percentage of a contract.
POST /updatewitness
Builds a transaction that updates the URL of a witness.
POST /validateaddress
Checks whether an address is well formed and returns its encodings.
POST /votewitnessaccount
Builds a transaction that casts votes for witnesses.
POST /withdrawbalance
Builds a transaction that claims accumulated rewards.
POST /withdrawexpireunfreeze
Builds a transaction that withdraws unstaked TRX once its lock has expired.

Common REST errors

What you are most likely to hit calling this interface, and what to do about it.

400
Bad request. A path or query parameter is malformed. Check the parameter format, and that path values are URL-encoded.
404
Not found. Either the path is wrong, or the resource genuinely does not exist at that height. Confirm the path against the list above. A valid path can still 404 for pruned history on a non-archive node.
429
Rate limited. You have exceeded the free tier request allowance. Back off and retry. REST responses cache well, so caching on your side removes most repeat traffic.
500
Internal server error. The node failed while handling the request. Retry with backoff.
503
Service unavailable. The node is starting, resyncing, or temporarily out of rotation. Retry with backoff; this is normally short-lived.
Blockchain Data

Indexed Tron Data Insights

Complete on-chain data access, no infrastructure to run yourself. Query wallets, tokens, NFTs, and transaction history with lightning-fast APIs.

Blockchain Notifications

Real-time Tron Alerts

Real-time webhooks for on-chain events. Stop polling the network - get instant alerts for transactions, smart contract events, and wallet activities.

Learn more

About Tron

What it is, and guides for building on it.

The Tron RPC documentation provides developers with the tools to interact programmatically with the Tron blockchain. Tron is optimized for decentralized content sharing and entertainment, using a Delegated Proof-of-Stake (DPoS) consensus mechanism to enable fast and low-cost transactions. The documentation includes API endpoints for querying blockchain data, managing transactions, and deploying smart contracts. Tron’s architecture is well-suited for media, gaming, and NFT applications, offering scalability and strong support for digital content distribution.

From the Tatum blog

FAQ

Frequently Asked Questions

Everything you need to know about Tron RPC endpoints

Quick Answer: What is Tron RPC?

RPC (Remote Procedure Call) is the standard way to interact with the network programmatically - reading on-chain data, submitting transactions, and deploying smart contracts through JSON-RPC calls. The free tier ships 5 requests per minute with no registration required, which covers most learning and testing workflows. Production applications typically move to Tatum Premium for 200 requests per second and enterprise-grade reliability.

What is Tron RPC?

RPC (Remote Procedure Call) is the interface that lets developers interact with the network: read on-chain data, submit transactions, and deploy smart contracts programmatically over standard JSON-RPC methods, without running your own node.

How do I connect to Tron using these RPC endpoints?

Simply copy the RPC endpoint URL from above and configure it in your Web3 library (ethers.js, web3.js), wallet (MetaMask, Trust Wallet), or development tool (Hardhat, Truffle). The endpoint works immediately with no registration required for the free tier.

What are the rate limits for the free RPC tier?

Free tier RPC endpoints are limited to 5 requests per minute. This is perfect for testing and development. For production applications, we recommend upgrading to Tatum Premium which offers 200 requests per second with no daily limits.

When should I upgrade to Premium?

Consider upgrading to Premium when you're moving to production, need higher rate limits (200 req/sec), require 99.9% uptime SLA, want access to archive nodes for historical data, or need advanced features like batch RPC calls, debug/trace methods, and priority support.

Is Tron RPC free forever?

Yes! Our free tier RPC endpoints are free forever with 5 requests per minute. This tier is perfect for learning, testing, and small projects. There are no hidden fees or time limits on the free tier.

What happens if I exceed the free tier rate limit?

If you exceed 5 requests per minute on the free tier, you'll receive an HTTP 429 (Too Many Requests) error. This is a standard rate limiting response. To avoid this, you can upgrade to Tatum Premium which offers 200 requests per second with no daily limits, perfect for production applications.

Can I use these Tron RPC endpoints with MetaMask?

Yes! You can configure MetaMask to use our RPC endpoints. Simply copy the endpoint URL from above, go to MetaMask Settings > Networks > Add Network (or edit existing), and paste the RPC URL. This works with all EVM-compatible networks, including this one.

Are these RPC endpoints secure?

Yes, all our RPC endpoints use HTTPS encryption and follow enterprise-grade security practices. They're powered by Tatum's infrastructure which maintains 99.9% uptime.

What's the difference between mainnet and testnet RPC endpoints?

Mainnet carries real transactions with real value, so every write is final. Testnet runs on a separate network funded with free test tokens, which makes it the safe place to try new code, retry failed calls, and simulate edge cases. Always validate on testnet before pointing production traffic at mainnet.

How do I troubleshoot RPC connection errors?

If you're experiencing connection errors, check: 1) The RPC endpoint URL is correct, 2) You're not exceeding rate limits (5 req/min for free tier), 3) Your network allows HTTPS connections, 4) The network is currently operational. For persistent issues, check our status page or contact support.

Can I use these endpoints in production?

Free tier endpoints can be used in production for low-traffic applications (under 5 req/min). For production apps with higher traffic, we strongly recommend Tatum Premium for guaranteed uptime, faster rate limits, and enterprise SLA.
Related Blockchains

Discover RPC endpoints for other popular blockchain networks