TriportRPC

TON RPC API — blocks, accounts, get-methods

Last updated:

Get API key Read the documentation

Network details

TON connection values
NetworkTON mainnet
Chain IDNone — TON is not an EVM network; confirm the network with getMasterchainInfo
CurrencyTON
JSON-RPC URLhttps://triport.io/rpc/ton
Keyed URLhttps://triport.io/r/<API_KEY>/rpc/ton
Authenticationx-token: $TRIPORT_API_KEY, scope ton:rpc
TransportJSON-RPC over ADNL
Transaction submissionNot part of the product

What works today

Capabilities and their published status — from the generated capability registry
CapabilityStatusNotes
JSON-RPC readsAvailableJSON-RPC over ADNL. Not included: sendBoc, estimateFee, getWalletInformation, a public stream, a continuous genesis archive.
Accounts, blocks and get-methodsAvailableA known jetton wallet read is not discovery of every token an account holds.

What this endpoint does not do

Published absences, with where to go instead
Not servedWhat that means for you
sendBocNo submission: Triport does not broadcast TON messages. Sign and send through your own liteserver or another provider.
estimateFeeNot served, so fee estimation has to happen in your own code or against your own node.
getWalletInformationNot served. Read the raw account with getAddressInformation and interpret the wallet contract yourself.
A public streamThere is no TON WebSocket or feed on Triport. Poll getMasterchainInfo for new blocks.
A continuous genesis archiveHistory comes from two liteservers with a measured floor, not a guaranteed archive from block zero.

Paging transactions: lt, hash, and a JavaScript trap

getTransactions has no offset. You page backwards by passing the lt and hash of the oldest item you already received, which returns the next, older page. Logical time values are larger than a JSON number can hold exactly, so send large lt values as strings — a silently rounded lt is the usual reason a paginator repeats or skips transactions.

One more boundary worth stating: reading a known jetton wallet with runGetMethod is not discovery. Nothing here enumerates every jetton an account holds, so token-portfolio features need your own index.

Archive depth is measured, not promised

History is served from two liteservers, with a measured floor around masterchain seqno 86.86M. That figure is an observation from our own probing rather than a commitment, so a read below it can fail — design deep-history work to detect that instead of assuming coverage.

Limits and plans

Requests per second by plan — per-category RPS limits, not measured upstream capacity
CapabilityFree trial (7 days)BasicProBusinessEnterprise
Reads (ton_read_rpc)1520100250no per-category cap
Accounts, blocks, get-methods1520100250no per-category cap
Transaction submission

Both TON budgets are the same on every plan, and they are operational defaults rather than a TON load test. Plans: Basic $20, Pro $249, Business $499, Enterprise from $999 per month; Free is a 7-day trial with a single key in the EU region. See TON rate limits and tiers.

Every plan with its limits on every network, and what a plan costs at its cap: RPC pricing.

Quickstart

# Masterchain head
curl https://triport.io/rpc/ton \
  -H 'x-token: $TRIPORT_API_KEY' -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getMasterchainInfo","params":{}}'

# Account state
curl https://triport.io/rpc/ton \
  -H 'x-token: $TRIPORT_API_KEY' -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getAddressInformation","params":{"address":"EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N"}}'

# Next (older) page: lt as a STRING
curl https://triport.io/rpc/ton \
  -H 'x-token: $TRIPORT_API_KEY' -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getTransactions","params":{"address":"EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N","limit":20,"lt":"48123456000001","hash":"<hash-of-oldest-item>"}}'

FAQ

What is the TON RPC URL?
https://triport.io/rpc/ton for JSON-RPC over ADNL. Authenticate with the x-token header (Authorization: Bearer also works) and the ton:rpc scope; the keyed URL form https://triport.io/r/<API_KEY>/ton works where a custom header is impossible.
What is TON's chain ID?
TON has no EVM-style chain ID — it is not an EVM network, and its addresses and workchains do not map onto one. Use getMasterchainInfo to confirm which network and seqno you are reading.
Can I send TON transactions through Triport?
No. sendBoc is not served, so this endpoint is read-only. Broadcasting needs your own liteserver connection or another provider; the same applies to estimateFee.
How do I page through an account's transactions?
getTransactions pages by the lt and hash of the oldest item you received: pass them back to fetch the next, older page. There is no offset parameter.
Why does my lt value break in JavaScript?
Logical time values exceed what a JSON number holds exactly, so pass large lt values as strings. A silently rounded lt is the usual cause of a page that repeats or skips transactions.
Can I list every token an account holds?
No. Reading a known jetton wallet with runGetMethod is not discovery: there is no endpoint here that enumerates every jetton an account owns. Build that index yourself, or use a dedicated indexer.
How deep is TON history on Triport?
History is served from two liteservers with a measured floor around masterchain seqno 86.86M. That is an observation, not a guarantee, and deep historical reads may fail outside it.
What are the TON rate limits?
Reads 15/20/100/250 RPS on Free trial/Basic/Pro/Business, with the same budget for the heavier account and block calls. Enterprise has no per-category cap. These are per-category RPS limits, not measured upstream capacity.

TON JSON-RPC methods