Розробка кастомного доменного сервісу на блокчейні

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка кастомного доменного сервісу на блокчейні
Складний
від 2 тижнів до 3 місяців
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1121
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    857

Розробка кастомного доменного сервісу на блокчейні

Коли стандартні .eth або .bnb недостатньо — потрібен власний TLD для вашої екосистеми. .defi, .game, .dao, брендований суфікс типу .uniswap — це не просто назва, це точка входу в ідентичність екосистеми. Кастомний domain service дає повний контроль: ціноутворення, правила реєстрації, інтеграція управління, специфічні записи resolver для екосистеми.

Архітектурний вибір: форк ENS vs з нуля

Форк ENS — правильне рішення в 90% випадків. ENS пройшов аудит, має готові subgraphs, інтеграції з гаманцями, і ethers.js розуміє його нативно. Ключові частини які потрібно змінити:

Registry — практично без змін. Логіка володіння nodes універсальна.

BaseRegistrar — змінити TLD на свій, period grace і expiry policy — під потреби проекту.

ETHRegistrarController — перейменувати, змінити ціноутворення, можливо видалити commit-reveal (якщо не потрібна захист від front-running).

PublicResolver — додати кастомні типи записів специфічні для екосистеми.

NameWrapper — опціонально, додає ERC-1155 субдомени та fuses.

Кастомні resolver записи

Для gaming домену потрібні специфічні дані:

// Розширюємо PublicResolver кастомними полями
contract GamingResolver is PublicResolver {
    // node => game_id => in-game address
    mapping(bytes32 => mapping(uint256 => string)) private _gameAddresses;
    
    // node => character stats (IPFS hash)
    mapping(bytes32 => string) private _characterData;
    
    event GameAddressChanged(bytes32 indexed node, uint256 gameId, string gameAddress);
    
    function setGameAddress(
        bytes32 node, 
        uint256 gameId, 
        string calldata gameAddress
    ) external authorised(node) {
        _gameAddresses[node][gameId] = gameAddress;
        emit GameAddressChanged(node, gameId, gameAddress);
    }
    
    function gameAddress(bytes32 node, uint256 gameId) 
        external view returns (string memory) 
    {
        return _gameAddresses[node][gameId];
    }
}

Кастомна pricing логіка

Форк ENS використовує лінійну або ступенчасту ціну за довжиною імені. Для кастомного сервісу можна додати:

Dynamic pricing по попиту: ціна зростає при високому попиту (як bonding curve).

Premium для коротких імен на старті: перші 30 днів після запуску — 10x ціна, потім нормалізується. Запобігає скупці коротких імен ботами.

Whitelist-фаза: до публічної продажу — реєстрація тільки для holders певного NFT або токена.

contract CustomPriceOracle {
    uint256 public constant LAUNCH_PREMIUM_PERIOD = 30 days;
    uint256 public launchTime;
    
    // Premium множник: знижується з 10x до 1x лінійно за 30 днів
    function getPremiumMultiplier() public view returns (uint256) {
        if (block.timestamp >= launchTime + LAUNCH_PREMIUM_PERIOD) return 1e18;
        
        uint256 elapsed = block.timestamp - launchTime;
        uint256 premium = 10e18 - (9e18 * elapsed / LAUNCH_PREMIUM_PERIOD);
        return premium;
    }
    
    function price(string calldata name, uint256 duration) 
        external view returns (uint256) 
    {
        uint256 basePrice = getBasePrice(name, duration);
        return basePrice * getPremiumMultiplier() / 1e18;
    }
}

Інтеграція управління

Для DAO-управляємого namespace: зміни ціноутворення, додання нових TLD, зарезервовані імена — все через governance proposal.

contract DomainGovernor {
    ICustomRegistry public registry;
    ICustomPriceOracle public priceOracle;
    
    // Тільки через governance timelock
    function updatePrices(uint256[] calldata newPrices) external onlyTimelock {
        priceOracle.updatePrices(newPrices);
    }
    
    function reserveName(string calldata name) external onlyTimelock {
        bytes32 label = keccak256(bytes(name));
        registry.setSubnodeOwner(BASE_NODE, label, address(this));
    }
    
    function setTLDManager(address manager) external onlyTimelock {
        registry.setOwner(ROOT_NODE, manager);
    }
}

Revenue модель

Варіанти монетизації:

Комісії за реєстрацію — основний джерело. 100% у скарбницю або розділяється зі stakers.

Комісії за поновлення — щорічно. Дає передбачуваний потік, мотивує зберігати популярні імена активними.

Royalty вторинного ринку — 2-5% від вторинних продаж (ERC-2981). Пасивний дохід від NFT торговлі.

Premium аукціони — коротка імена (1-3 символи) продаються через Vickrey або Dutch аукціон замість фіксованої ціни.

Інтеграція гаманця

Проблема кастомних доменів: гаманці не знають про них за замовчуванням. Рішення:

Rainbow kit, WalletConnect: підтримують будь-який EVM-сумісний ENS-fork якщо передати правильну адресу registry.

Universal Resolver: ENS L1 resolver може бути налаштований як gateway для кастомних namespace через CCIP-Read. Це дозволяє MetaMask та іншим гаманцям резолвити кастомні імена без змін на їх стороні.

Власне browser extension: для максимального контролю — але високий поріг адаптації.

Стек

Компонент Технологія
Контракти Solidity 0.8.x + ENS fork + OpenZeppelin
Subgraph The Graph (AssemblyScript)
Resolution SDK TypeScript, fork ENS.js
Frontend React + wagmi + viem
CCIP-Read gateway Node.js + Express
Механізм аукціону Vickrey або Dutch auction контракт

Сроки розробки

Фаза 1 — Core контракти (4-6 тиж): Registry + Resolver + BaseRegistrar + PriceOracle + Controller. Адаптація ENS форка.

Фаза 2 — Розширені функції (2-4 тиж): кастомні типи resolver, інтеграція управління, premium аукціон.

Фаза 3 — Інфраструктура (2-3 тиж): The Graph subgraph, resolution SDK, CCIP-Read gateway.

Фаза 4 — Frontend (2-4 тиж): реєстраційний UI, управління доменом, інтеграція маркетплейсу.

Аудит (2-4 тиж): обов'язковий, реєстратор приймає ETH/токени.

Повний production-ready сервіс: 3-4 місяці. MVP з базовою реєстрацією: 6-8 тиж.