<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[apiton]]></title><description><![CDATA[apiton]]></description><link>https://apiton.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 10:56:33 GMT</lastBuildDate><atom:link href="https://apiton.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[apiton: One Explorer and API for Telegram Usernames, +888 Numbers, .ton Domains and Gifts on TON]]></title><description><![CDATA[Telegram has quietly turned a lot of everyday things into NFTs on The Open Network (TON). Collectible @usernames, anonymous +888 phone numbers and…]]></description><link>https://apiton.hashnode.dev/apiton-one-explorer-and-api-for-telegram-usernames-888-numbers-ton-domains-and-gifts-on-ton</link><guid isPermaLink="true">https://apiton.hashnode.dev/apiton-one-explorer-and-api-for-telegram-usernames-888-numbers-ton-domains-and-gifts-on-ton</guid><category><![CDATA[Blockchain]]></category><category><![CDATA[TON Blockchain]]></category><category><![CDATA[telegram]]></category><category><![CDATA[api]]></category><category><![CDATA[Web3]]></category><dc:creator><![CDATA[api TON]]></dc:creator><pubDate>Sun, 25 Oct 2026 17:28:50 GMT</pubDate><content:encoded><![CDATA[<p>Telegram has quietly turned a lot of everyday things into NFTs on The Open Network (TON). Collectible @usernames, anonymous +888 phone numbers and collectible gifts all live on-chain now, next to <code>.ton</code> domains, jettons and ordinary NFT collections. They change hands every minute. Yet simple questions are still hard to answer, such as "which 4-letter usernames are on auction right now?" or "which <code>.ton</code> domains expired this month?". Usually you end up clicking through marketplaces one lot at a time.</p>
<p><strong><a href="https://apiton.org">apiton</a></strong> brings all of this together. It is a web explorer, a Telegram bot and a public API, and all three run on exactly the same data. This article walks through what each part can do.</p>
<blockquote>
<p>For the story of how it is built (a site with no database access, unreliable public liteservers, and why <code>.ton</code> domains can't be listed straight from the chain), read the author's deep dive: <strong><a href="https://telegra.ph/YA-sdelal-TON-ehksplorer-gde-kazhdaya-stranica--vyzov-publichnogo-API-10-25">"I built a TON explorer where every page is a public API call"</a></strong> on Telegraph (in Russian). An <a href="https://dev.to/apiton/i-built-a-ton-explorer-where-every-page-is-a-public-api-call-4lcl">English version is on dev.to</a>.</p>
</blockquote>
<hr />
<h2>1. The explorer: what is listed, on auction or expired</h2>
<p><a href="https://apiton.org">apiton.org</a> shows every Telegram-related asset on TON with its <strong>status</strong> (not listed, for sale, on auction, expired), its <strong>price</strong> and its <strong>history</strong>. At the time of writing it tracks:</p>
<table>
<thead>
<tr>
<th>Category</th>
<th>Items tracked</th>
</tr>
</thead>
<tbody><tr>
<td>Telegram usernames</td>
<td>~674,000</td>
</tr>
<tr>
<td>Anonymous +888 numbers</td>
<td>~137,000</td>
</tr>
<tr>
<td><code>.ton</code> domains</td>
<td>~200,000 (about 28,600 of them expired)</td>
</tr>
<tr>
<td>Telegram gifts</td>
<td>~64,600</td>
</tr>
<tr>
<td>Live TON Sites</td>
<td>382</td>
</tr>
</tbody></table>
<p>Useful views include:</p>
<ul>
<li><strong>Usernames</strong> filtered by length (4, 5 or 6 characters), plus "for sale" and "auctions" lists.</li>
<li><strong>+888 numbers</strong> grouped by series (<code>+888 00…</code>, <code>+888 01…</code> and so on).</li>
<li><strong><code>.ton</code> domains</strong> that are for sale, on auction, expired, expiring soon or numeric. Expired names are interesting if you want to pick up a domain someone let go.</li>
<li><strong>Telegram gifts</strong> by collection, with the lots currently for sale.</li>
<li><strong>Market activity</strong>: a feed of recent events such as <em>Listed</em>, <em>Delisted</em>, <em>Price changed</em>, <em>Auction started</em>, <em>New bid</em> and <em>Expired</em>.</li>
<li><strong>Live TON Sites</strong>: <code>.ton</code> domains that serve an actual website, with screenshots, ranking and the date each one first went live.</li>
</ul>
<p>The TON Sites catalogue deserves a closer look. A <code>.ton</code> domain can point to a site through its <code>site</code> DNS record, either an ADNL address or a TON Storage bag. apiton reads that record for every domain, checks the site over RLDP-HTTP or TON Storage, separates placeholders from real pages and takes screenshots. The explorer is itself a TON Site, <code>apiton.ton</code>, which you can open without a TON proxy through the gateway at <a href="https://site.apiton.org/apiton.ton/">site.apiton.org/apiton.ton/</a>.</p>
<p>Prices are shown for information only. apiton does not sell any of these items, and nothing on the site is an offer or advice.</p>
<hr />
<h2>2. @apitonBot: cards, watches and alerts in Telegram</h2>
<p><strong><a href="https://t.me/apitonBot">@apitonBot</a></strong> is a second client of the same API. You can send it any of these and get back a card:</p>
<ul>
<li>a wallet address;</li>
<li>an @username;</li>
<li>a +888 number;</li>
<li>a <code>name.ton</code> domain;</li>
<li>a link to a gift.</li>
</ul>
<p>The bot also:</p>
<ul>
<li><strong>watches lots and wallets</strong> and messages you when something is listed, sold, receives a new bid, or when a wallet gets an incoming transaction;</li>
<li>sends <strong>price alerts</strong> and shows a <strong>wallet portfolio</strong>;</li>
<li>issues your <strong>API key</strong> with <code>/get_api</code>;</li>
<li>replies in Russian to users from CIS countries and in English to everyone else.</li>
</ul>
<p><strong>Premium</strong> speeds up alerts to every 30 seconds and raises the limit to 30 watched items, for 150 Telegram Stars or 1 TON per month.</p>
<hr />
<h2>3. The API: try it with one curl, no key needed</h2>
<p>The website has <strong>no direct database access</strong>. It is a separate Go program that renders every page from the same public API you can call yourself. So every feature you see on the site is also an API method.</p>
<p>The basics:</p>
<ul>
<li>The API uses the <strong><a href="https://connectrpc.com/">Connect</a> protocol</strong>. Each call is a <code>POST</code> with a JSON body to <code>https://app.apiton.org/v2.&lt;Service&gt;/&lt;Method&gt;</code>. Generated gRPC and gRPC-Web clients work as well.</li>
<li><strong>Anonymous calls are allowed</strong>: 1 request per second and 10,000 per month per IP.</li>
<li>With a key from the bot (<code>Authorization: Bearer &lt;tg_id&gt;:&lt;secret&gt;</code>) you get your own quota instead of sharing your IP's. The <strong>free</strong> tier is 1 req/s and 10k/month, <strong>builder</strong> is 10 req/s and 300k/month, and <strong>pro</strong> is 100 req/s and 3M/month. Paid tiers are bought in the bot with Telegram Stars or TON.</li>
<li>Full reference and a playground: <strong><a href="https://docs.apiton.org">docs.apiton.org</a></strong>.</li>
</ul>
<h3><code>v2.Catalog</code>: search the whole catalogue</h3>
<p><code>Catalog/List</code> filters by <code>kind</code> (<code>username</code>, <code>number</code>, <code>domain</code>, <code>gift</code>), <code>statuses</code>, <code>name_len</code>, <code>digits_only</code>, <code>prefix</code> and an expiry window. It sorts by <code>name</code>, <code>price_asc</code>, <code>price_desc</code>, <code>expires_asc</code> or <code>changed</code>.</p>
<pre><code class="language-bash"># the cheapest .ton domains for sale
curl -s -X POST https://app.apiton.org/v2.Catalog/List \
  -H 'Content-Type: application/json' \
  -d '{"kind":"domain","statuses":["sale"],"sort":"price_asc","limit":2}'

# 4-letter usernames on auction
curl -s -X POST https://app.apiton.org/v2.Catalog/List \
  -H 'Content-Type: application/json' \
  -d '{"kind":"username","statuses":["auction"],"name_len":4}'

# what just sold
curl -s -X POST https://app.apiton.org/v2.Catalog/Events \
  -H 'Content-Type: application/json' \
  -d '{"types":["sold"],"limit":3}'
</code></pre>
<p><code>Catalog/Summary</code> returns the totals by status. <code>Catalog/Events</code> called with a <code>kind</code> and <code>name</code> returns the full history of a single lot: listed, delisted, price changes, sold, bids, expiry and renewal. Each item includes a <code>price_source</code> field that tells you whether the price came from an on-chain sale contract or from a Fragment listing.</p>
<h3><code>v2.Nft</code>: the live state of one item</h3>
<p>The catalogue refreshes in the background. To see an item's state right now, the <code>v2.Nft</code> methods read the blockchain, through a 45-second cache.</p>
<table>
<thead>
<tr>
<th>Method</th>
<th>Returns</th>
</tr>
</thead>
<tbody><tr>
<td><code>Username</code>, <code>Number</code></td>
<td>Owner, NFT address, image, current sale or auction</td>
</tr>
<tr>
<td><code>Domain</code></td>
<td>Owner, <strong>expiry date</strong>, sale or auction, plus its <strong>TON Site</strong> status and uptime</td>
</tr>
<tr>
<td><code>Gift</code></td>
<td>Owner, collection, sale or auction, and Fragment's display name and attributes</td>
</tr>
<tr>
<td><code>Item</code> / <code>Items</code></td>
<td>Any NFT by address, or a page of items from one collection</td>
</tr>
</tbody></table>
<p>Every lookup normalises the state to <code>available</code>, <code>sale</code>, <code>auction</code> or <code>unavailable</code>. While an NFT sits in a sale or auction contract, <code>owner_address</code> is the <strong>actual seller</strong>, not the contract. A dead contract (sale already completed, or an auction that ended without bids) is reported as <code>available</code>, not as a live listing.</p>
<pre><code class="language-bash">curl -s -X POST https://app.apiton.org/v2.Nft/Domain \
  -H 'Content-Type: application/json' \
  -d '{"domain":"apiton.ton"}'
</code></pre>
<h3><code>v2.Address</code>: wallets and history</h3>
<ul>
<li><strong><code>Transactions</code></strong> returns an address's transactions with decoded operations, comments, and jetton and NFT transfers. It is backed by a historical archive, so it reaches further back than the roughly one month public liteservers keep.</li>
<li><strong><code>Details</code></strong> returns the balance, status, detected contract interfaces and decoded on-chain content for jettons, NFTs and DNS items.</li>
<li><strong><code>Jettons</code></strong>, <strong><code>NFTs</code></strong> and <strong><code>Collections</code></strong> return what an address holds or administers, with metadata already resolved.</li>
<li><strong><code>Wallets</code></strong> takes a public key and lists every deployed wallet version (V1R1 through V5) with its balance. This is handy for finding funds left in an old wallet contract.</li>
</ul>
<h3><code>v2.Rate</code>: TON and jetton prices</h3>
<ul>
<li><strong><code>Fiat</code></strong> and <strong><code>Crypto</code></strong> return the price of 1 TON. TON/USD is the median of exchange quotes that agree within 3%, cross-checked against the on-chain USD₮/TON pool.</li>
<li><strong><code>Exchanges</code></strong> returns prices on individual exchanges, refreshed every 15 seconds.</li>
<li><strong><code>Jetton prices</code></strong> returns USD prices taken from the deepest STON.fi or DeDust pool.</li>
</ul>
<h3>Custodial wallets, sending and minting</h3>
<p>With a key and a wallet token, the API also covers write operations:</p>
<ul>
<li><strong><code>v2.Auth</code></strong> manages up to five custodial wallets per key: create, import from a mnemonic, back up, delete. Its <code>Do</code> method issues a 24-hour JWT for one wallet.</li>
<li><strong><code>v2.Wallet</code></strong> sends TON, jettons or NFTs.</li>
<li><strong><code>v2.NftContract</code></strong> mints collections and NFTs with fully on-chain content.</li>
<li><strong><code>v2.JettonContract</code></strong> mints a jetton and handles burn, change owner and close mint.</li>
</ul>
<blockquote>
<p><strong>A note on security:</strong> custodial means apiton holds the keys. That is convenient for bots, payouts and testing. Keep balances small, and think twice before importing the mnemonic of a wallet that holds real funds.</p>
</blockquote>
<h3>Good to know about the JSON</h3>
<p>Responses are proto3 JSON, which can surprise anyone used to hand-written REST APIs:</p>
<ul>
<li><strong>int64 values arrive as strings</strong>, for example <code>"total": "28734"</code>.</li>
<li><strong>Zero values are omitted.</strong> An empty result is <code>{}</code>.</li>
<li><strong>Errors</strong> come in a Connect envelope with a real HTTP status. <code>invalid_argument</code> is HTTP 400. <code>resource_exhausted</code> is HTTP 429, meaning you hit the rate limit. <code>unavailable</code> means TON liteservers are lagging, so retry in a second or two.</li>
<li>Every response carries the <code>X-RateLimit-Limit</code>, <code>X-RateLimit-Remaining</code> and <code>X-RateLimit-Reset</code> headers.</li>
</ul>
<h3>For AI assistants</h3>
<p><strong><a href="https://apiton.org/llms.txt">apiton.org/llms.txt</a></strong> is a Markdown map of the site, the API and the bot, written for language models. Give it to your assistant or agent. Then a question like "what's the cheapest 5-letter username for sale right now?" gets answered with a real API call instead of a guess.</p>
<hr />
<h2>What you can build with it</h2>
<ul>
<li><strong>Name snipers.</strong> Poll <code>Catalog/List</code> for expired <code>.ton</code> domains or newly listed usernames, or let the bot watch them for you.</li>
<li><strong>Market analytics</strong> on gift collections, +888 series or username lengths, using <code>Catalog/Events</code>.</li>
<li><strong>Portfolio dashboards</strong> that combine <code>Address</code> holdings with <code>Rate</code> prices.</li>
<li><strong>Telegram bots and Mini Apps</strong> that accept TON, pay rewards or mint NFTs without running your own node. apiton also publishes a <a href="https://github.com/apiton-org">fullscreen Mini App game template</a> on GitHub.</li>
<li><strong>Wallet recovery helpers</strong> that scan every wallet version for a public key.</li>
</ul>
<hr />
<h2>Getting started</h2>
<ol>
<li>Browse the explorer at <strong><a href="https://apiton.org">apiton.org</a></strong>.</li>
<li>Run one of the curl commands above. No key is needed.</li>
<li>Open <strong><a href="https://t.me/apitonBot">@apitonBot</a></strong> to watch items and get an API key with <code>/get_api</code>.</li>
<li>Read the reference at <strong><a href="https://docs.apiton.org">docs.apiton.org</a></strong> and the deep dive on <a href="https://telegra.ph/YA-sdelal-TON-ehksplorer-gde-kazhdaya-stranica--vyzov-publichnogo-API-10-25">Telegraph</a> or <a href="https://dev.to/apiton/i-built-a-ton-explorer-where-every-page-is-a-public-api-call-4lcl">dev.to</a>.</li>
<li>Follow news on <strong><a href="https://t.me/apiton">@apiton</a></strong>.</li>
</ol>
<p>Missing a method? Send <code>/feedback</code> to the bot.</p>
<p><em>Statistics are as of October 2026. Prices and listings are informational and not financial advice.</em></p>
]]></content:encoded></item></channel></rss>