Інтеграція з TON DNS
TON DNS — нативна система іменування блокчейну TON. Домени .ton використовуються для резолюції адрес гаманців, смарт-контрактів і веб-сайтів у TON Sites (децентралізований хостинг на базі 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 }, // категорія: гаманець
]
);
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 замість сирої адреси.
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 робочих дня.







