Интеграция с TON DNS
TON DNS — нативная система имён блокчейна TON. Домены .ton используются для резолвинга адресов кошельков, смарт-контрактов, и сайтов в TON Sites (децентрализованный hosting на базе TON Storage). Интеграция критична для любого dApp, ориентированного на аудиторию Telegram и TON экосистемы.
Резолвинг через TonClient
import { TonClient, Address } from "@ton/ton";
const client = new TonClient({
endpoint: "https://toncenter.com/api/v2/jsonRPC",
apiKey: TON_API_KEY,
});
// Резолвинг .ton домена
async function resolveTONDomain(domain: string): Promise<string | null> {
// Удаляем .ton суффикс если есть
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;
}
TON Connect интеграция
Для dApps с TON Connect: отображение .ton имени в UI вместо raw адреса.
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>;
}
Особенности TON DNS
В отличие от ENS, TON DNS имеет иерархию через смарт-контракты: корневой DNS контракт → зональные контракты (.ton зона) → индивидуальные домены. Каждый домен — отдельный смарт-контракт.
Домены продаются через аукцион на getgems.io и dns.ton.org. NFT домены торгуются на TON NFT маркетплейсах.
Интеграция TON DNS в TON dApp или Telegram Mini App — 1-2 рабочих дня.







