apiton blog
How to read a TON address page on apiton.org
Every TON account has a page on apiton.org at /address/<address>. It shows what the account
holds and what it did recently, all read through the public apiton API. This guide walks through
the page top to bottom, using a real example: the wallet that owns foundation.ton,
UQCd…3AF4.
You can paste any address into the search box on apiton.org. Address pages are for looking things up and are not indexed by search engines.
Which address form the page uses
The page URL always uses the non-bounceable form (UQ…). If you open it with the bounceable
form (EQ…) or the raw form (0:…), you are redirected to the UQ… URL; a .ton name goes to the
domain's page instead. The top card lists all three forms of the same account:
- Address —
UQ…, non-bounceable; - Bounceable —
EQ…; - Raw —
0:followed by 64 hex characters.
They are the same account. Why there are three forms and which one to send to is explained in Reading a TON address: raw vs bounceable vs non-bounceable.
Status, balance and contract
- Status is the account state on chain: Active (a deployed contract), Not deployed (uninit) — the address has received coins but no code was deployed yet, which is normal for a new wallet that has never sent anything —, Frozen (the account could not pay its storage fees and its code and data were frozen), or No account on chain (nothing was ever sent there).
- Balance is in the network's coin, written 💎, with an approximate USD value at the current rate.
- Contract names the detected contract type — e.g.
wallet v4r2,jetton master,NFT item. Plain wallets with unrecognised code show nothing here. - Last transaction lt is the logical time of the latest transaction, a counter that orders transactions within the account.
If the address is a jetton master, an NFT collection or an NFT item, a link under the button points to the dedicated page for that contract type.
Jettons
The Jettons table lists up to 20 token balances: the jetton name (or, when it has no metadata, the address of its master), the balance with decimals applied, and a Value column.
Value is balance × USD price when apiton has a price for that jetton; otherwise it is empty. Where
the price comes from — and why it is sometimes missing — is covered in
Jetton prices in USD.
Be careful with names: anyone can create a jetton with any name and send it to any address, so wallets collect unsolicited tokens. The example wallet holds several. A jetton is identified by its master address, never by its name or symbol — see Jettons on TON.
NFTs
The NFTs grid shows up to 20 items with their image, name and collection. Telegram usernames,
+888 numbers and .ton domains link straight to their pages in the apiton catalog (for example
the numbers +888 0354 0427 and +888 0439 2794 in the example); other NFTs link to an NFT page
with the collection, owner and any active sale.
Like jettons, NFTs can be sent to anyone without consent; items with spam names or links in their titles are common. Do not follow links from NFT names.
Transactions
Recent transactions shows the newest transactions first. Each row has:
- Time in UTC;
- Transfer —
inwith the amount of the incoming message, oroutwith the amount of the first outgoing message; the decoded operation name when there is one (JettonTransfer,JettonNotify, …); and a failed badge when the transaction did not succeed; - Counterparty — the sender for
in, the first recipient forout(+N morewhen there are several), linked to its own address page; - Tx — the start and end of the transaction hash.
A failed row still happened on chain and still paid fees; it means the contract rejected the message (for example a jetton transfer with too little TON attached).
Paging
The page asks for 20 transactions. When a full page comes back, an Older → link appears. It
carries a cursor in the URL — ?lt=…&tx=…, the logical time and hash of the last transaction on
the page — and the next page starts from there. ← Newest returns to the first page. Older pages
show only transactions, without the jetton and NFT sections.
The same paging works in the API, v2.Address/Transactions:
curl -X POST https://app.apiton.org/v2.Address/Transactions \
-H 'Content-Type: application/json' \
-d '{"address":"UQCdqXGvONLwOr3zCNX5FjapflorB6ZsOdcdfLrjsDLt3AF4","limit":20}'
For the next page, send the lt and tx of the last element as start_after_lt and
start_after_tx. A page can hold fewer rows than limit, and the first row of the next page can
repeat the last row of the previous one, so de-duplicate by tx.
How fresh it is
The page is assembled from v2.Address/Details, Transactions, Jettons, Nfts and the TON/USD
rate, and cached for a few minutes. If one part cannot be read, the rest of the page still
renders with a short "temporarily unavailable" note.
For a live view and alerts on an address, open it in @apitonBot with the button on the page.