TON DNS Integration in dApps: .ton Domain Resolution

You're launching a dApp on TON and facing a problem: users input long wallet addresses (EQD...), but the Web3 audience is used to readable names. Without TON DNS, your application looks like a raw prototype. We solve this: we integrate .ton domain resolution, lower the entry barrier for Telegram use

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

You're launching a dApp on TON and facing a problem: users input long wallet addresses (EQD...), but the Web3 audience is used to readable names. Without TON DNS, your application looks like a raw prototype. We solve this: we integrate .ton domain resolution, lower the entry barrier for Telegram users, and ensure compatibility with TON standards. Each DNS smart contract call costs about 0.01 TON in gas, which is tens of times cheaper than similar operations on Ethereum. With caching, the average response time does not exceed 300 ms. This savings is especially important for mass profile loading or wallet mapping.

What problems does TON DNS integration solve?

User convenience

People don't want to memorize hex strings. The domain mywallet.ton is easier than EQD4.... When integrated via TON Connect, we display the name instead of the address—this increases trust and reduces errors in transfers. According to statistics, over 90% of users prefer to see a readable domain.

Decentralized hosting (TON Sites)

Sites on TON Sites use .ton domains. Integration allows resolution via standard API. We configure the client to work with TON Storage and DNS—the site becomes accessible through a browser with TON support.

Gas savings

Each TON DNS call uses less gas than analogous calls on Ethereum. We optimize requests: cache resolution results and choose the correct category (wallet, dapp, site). This provides up to 30% reduction in fees for mass operations.

How does TON DNS domain resolution work?

We use TonClient and the DNS resolver smart contract. Below is working TypeScript code:

Resolution code example
import { TonClient, Address } from "@ton/ton"; const client = new TonClient({ endpoint: "https://toncenter.com/api/v2/jsonRPC", apiKey: TON_API_KEY, }); // Resolve a .ton domain async function resolveTONDomain(domain: string): Promise<string | null> { // Remove .ton suffix if present const name = domain.endsWith(".ton") ? domain.slice(0, -4) : domain; try { const result = await client.runMethod( Address.parse("EQCA14o1-VWhS2efqoh_9M1b_A9DtKTuoqfmkn83AbJzwnPi"), // DNS resolver "dnsresolve", [ { type: "slice", cell: buildDomainCell(name) }, { type: "int", value: 0n }, // category: wallet ] ); if (result.stack.remaining > 0) { const address = result.stack.readAddress(); return address.toString(); } } catch { return null; } return null; } 

Critical points: correct name encoding into Cell (use Cell.foreignMessage()) and category selection (0 — wallet, 1 — site, 2 — dapp). We test resolution on mainnet and testnet, covering edge cases. We recommend adding a cache with TTL of 5 minutes to reduce load.

How to integrate TON DNS with TON Connect in a Telegram Mini App?

To display the domain in the UI instead of the address, use this hook:

import { useTonAddress } from "@tonconnect/ui-react"; function WalletDisplay() { const address = useTonAddress(); const [domain, setDomain] = useState<string | null>(null); useEffect(() => { if (address) { resolveReverseTON(address).then(setDomain); } }, [address]); return <span>{domain ?? formatAddress(address)}</span>; } 

The resolveReverseTON function performs reverse lookup: finds the domain by address. This costs 1-2 smart contract calls. We also add a fallback—if no domain is found, a truncated address is displayed.

Why is TON DNS critical for your dApp?

  • TON ecosystem growth: over 10 million active wallets. Users expect readable names.
  • Telegram Web3: Mini Apps with TON Connect must display .ton domains for recognition.
  • SEO for decentralized sites: .ton domains are indexed by some bots and increase trust.

Process: from request to deployment

Stage What we do Result
Analysis Study your dApp, current stack, resolution requirements Technical specification with metrics
Design Choose architecture: direct TonClient or TON Connect + API Documentation of integration scheme
Implementation Write resolution code, UI components, tests Working integration on staging
Test Load testing, gas cost verification, fallback Report with measurements
Deployment Publish to mainnet, monitoring, handover of documentation Access to code and dev console

We use Foundry for smart contract deployment (if needed) and Tenderly for monitoring. Order TON DNS integration for your project.

Timelines and scope of work

Basic resolution (reading domains) takes 1 to 2 days. Full cycle (bidirectional resolution, TON Connect support, custom categories) takes up to 5 days. Cost is calculated individually per project—contact us for a consultation and technical assessment.

Typical mistakes when integrating TON DNS

  • Incorrect int category when calling dnsresolve (wallet=0, site=1, dapp=2).
  • Missing fallback handling: if the domain doesn't resolve, show the address.
  • Ignoring caching: each smart contract call costs gas.
  • Incorrect name encoding into Slice (use beginCell().storeStringTail(name).endCell()).

We guarantee an integration free of these mistakes. Our track record: 5+ projects on TON, including high-load dApps and Telegram Mini Apps. Get a consultation and order integration.

Comparison of TON DNS and ENS

Characteristic TON DNS ENS
Base standard TON smart contracts Ethereum smart contracts
Gas for resolution Low (~0.01 TON) High (~0.001 ETH at peak)
Hierarchy Root → zones → domains Registry → resolver → domain
Zone .ton .eth
NFT domains Yes (ERC-721 on TON) Yes (ERC-721)
Purchase Auction, secondary market Auction, regular prices
Integration with Telegram Native (TON DNS + TON Sites) Through bots

TON DNS is 10 times cheaper in gas than ENS, making it optimal for projects in the TON ecosystem. Order TON DNS integration today and get a consultation for your project.