Інтеграція з Unstoppable Domains
Unstoppable Domains — альтернатива ENS з однією ключовою відмінністю: імена придбаються один раз без щорічної плати. .crypto, .wallet, .nft, .x, .blockchain та інші TLD. Домени зберігаються як ERC-721 NFT на Polygon та Ethereum.
Розв'язування через офіційний SDK
import Resolution from "@unstoppabledomains/resolution";
const resolution = new Resolution({
sourceConfig: {
uns: {
locations: {
Layer1: {
url: `https://mainnet.infura.io/v3/${INFURA_KEY}`,
network: "mainnet",
},
Layer2: {
url: `https://polygon-mainnet.infura.io/v3/${INFURA_KEY}`,
network: "polygon-mainnet",
},
},
},
},
});
// Розв'язування ETH адреси
const ethAddress = await resolution.addr("brad.crypto", "ETH");
// Інші криптовалюти
const btcAddress = await resolution.addr("brad.crypto", "BTC");
// Email з профілю
const email = await resolution.email("brad.crypto");
// Всі записи
const allRecords = await resolution.allRecords("brad.crypto");
Ключові відмінності від ENS
| Параметр | Unstoppable Domains | ENS |
|---|---|---|
| Модель оплати | Однократна покупка | Щорічна оренда |
| Мережа (основна) | Polygon L2 | Ethereum mainnet |
| TLD | .crypto, .wallet, .nft... | .eth |
| Стандарт | UNS (кастомний) | ERC-137 |
| Зворотне розв'язування | Обмежене | Повне |
Інтеграція у UI
Паттерн використання: підтримувати обидва стандарти (ENS + Unstoppable) у полях введення адреси.
async function resolveAddress(input: string): Promise<string | null> {
// ENS
if (input.endsWith(".eth")) {
return await provider.resolveName(input);
}
// Unstoppable Domains TLDs
const udTLDs = [".crypto", ".wallet", ".nft", ".x", ".blockchain", ".dao"];
if (udTLDs.some(tld => input.endsWith(tld))) {
try {
return await resolution.addr(input, "ETH");
} catch {
return null;
}
}
// Необроблена адреса
if (ethers.isAddress(input)) return input;
return null;
}
Інтеграція Unstoppable Domains в існуючий dApp — 1-2 робочих дні. Підтримка всіх типів записів та профілів — до 3 днів.







