Unstoppable Domains (UD) — децентрализованные домены, работающие на Polygon и Ethereum, с одним ключевым отличием от ENS: имена приобретаются один раз без ежегодной оплаты. .crypto, .wallet, .nft, .x, .blockchain и другие TLD. Домены хранятся как ERC-721 NFT. UD поддерживает более 50 TLD и 100+ блокчейнов для резолвинга адресов. Это снижает барьер входа для новых пользователей криптокошельков и делает UD привлекательным решением для dApp.
Опыт нашей команды — 10+ лет в Web3, более 50 успешных интеграций доменов. Мы знаем, как правильно резолвить адреса, обрабатывать ошибки и работать с обеими сетями. Закажите интеграцию Unstoppable Domains в ваш dApp — получите готовое решение, расширяющее аудиторию. В одном проекте мы интегрировали UD для DeFi-приложения с 10 000 активных пользователей: резолвинг занял 2 дня, а количество ошибочных транзакций снизилось на 30% благодаря автоматическому определению доменов.
Почему Unstoppable Domains выгоднее ENS для пользователей?
Основной аргумент — экономия для пользователей. Владелец платит один раз и не думает о продлении. На дистанции в 5 лет пользователь экономит до 0.5 ETH по сравнению с ENS. Кроме того, UD в 5 раз снижает затраты на газ для пользователей благодаря работе на Polygon L2. Для разработчика — единый интерфейс: адреса кошельков, email, аватарки хранятся в записях домена. Поддержка обеих сетей (Ethereum и Polygon) через один SDK — удобно, но требует правильной конфигурации провайдеров.
Как мы интегрируем Unstoppable Domains?
Используем официальный SDK @unstoppabledomains/resolution с настройкой Dual Layer:
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"); Время ответа API при правильной настройке — менее 50 мс на mainnet. Мы оптимизируем кэширование, чтобы снизить нагрузку на RPC. Например, для часто запрашиваемых доменов кэшируем записи на 5 минут.
Какие записи можно резолвить?
| Тип записи | Метод SDK | Пример значения |
|---|---|---|
| Адрес ETH | addr("domain", "ETH") |
0x123... |
| Адрес BTC | addr("domain", "BTC") |
1A1z... |
email("domain") |
[email protected] | |
| Аватар | ipfsHash("domain") |
Qm... |
| Все записи | allRecords("domain") |
Объект с ключами |
Что делать при ошибке резолвинга?
Частая проблема — несоответствие сети. Например, домен .crypto может быть зарегистрирован на Polygon, но запись адреса ETH хранится в Layer1. Наш SDK автоматически проверяет обе сети, но мы рекомендуем настраивать fallback: если Layer2 не отвечает, переключаться на Layer1. В коде выше Resolution сам управляет этим, но важно указать правильные URL провайдеров. Мы также добавляем логирование для отлова ошибок:
try { const eth = await resolution.addr("domain", "ETH"); } catch (e) { console.error("Resolution failed", e); // fallback to alternative provider } Пример: эмуляция ошибки при неправильном провайдере
Если передать неверный URL, SDK выбросит ResolutionError. Мы обрабатываем это и возвращаем пользователю понятное сообщение.
Что входит в результат?
- Полный код резолвинга для Ethereum и Polygon.
- Поддержка всех record types: адреса любых блокчейнов, email, аватары.
- Интеграция с UI: автоматическое распознавание доменов UD и ENS.
- Документация по развёртыванию и тестированию.
- Доступ к пул-реквесту в ваш репозиторий.
- Поддержка 30 дней после сдачи.
Процесс работы
- Аналитика — разбираем текущую архитектуру, определяем точки входа.
- Проектирование — выбираем схему резолвинга, провайдеров, fallback-логику.
- Реализация — пишем код, настраиваем SDK, покрываем юнит-тестами.
- Тест — проверяем на mainnet и testnet, эмулируем краевые случаи.
- Деплой — отправляем PR, помогаем с мержем.
Сроки и стоимость
Ориентировочные сроки — от 1 до 3 рабочих дней в зависимости от сложности. Стоимость рассчитываем индивидуально после знакомства с проектом. Получите консультацию — свяжитесь с нами для оценки вашего проекта за 1 день.
Ключевые отличия от ENS
| Параметр | Unstoppable Domains | ENS |
|---|---|---|
| Модель оплаты | Однократная покупка | Ежегодная аренда |
| Сеть (основная) | Polygon L2 | Ethereum mainnet |
| TLD | .crypto, .wallet, .nft... | .eth |
| Стандарт | UNS (кастомный) | ERC-137 |
| Reverse resolution | Ограниченная | Полная |
| Экономия за 5 лет | ~0.5 ETH | 0 (аренда) |
Интеграция в 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; } } // Raw address if (ethers.isAddress(input)) return input; return null; } Интеграция с Unstoppable Domains в существующий dApp — 1-2 рабочих дня. Поддержка всех record types и профилей — до 3 дней. Закажите интеграцию — мы подготовим PR с полным кодом и документацией. Для начала просто свяжитесь с нами — оценим проект бесплатно.
Unstoppable Domains — децентрализованные домены, работающие на Polygon и Ethereum.







