Ми часто стикаємося із запитами налаштування доменних імен у dApp. Наша команда з 5+ років досвіду у Web3 вже успішно інтегрувала naming protocols у понад 15 проектів, гарантуючи якість та сертифікати аудиту. На перший погляд, рутина, доки не впираєшся в обмеження односітьових резолверів. SpaceID — це naming protocol, що забезпечує мультичейн домени для BNB Chain та Arbitrum, вирішуючи проблему уніфікації: один SDK для декількох ланцюжків. Але інтеграція має підводні камені — від несумісності ABI до ігнорування reverse resolution. У цій статті ми ділимося досвідом інтеграції на реальних проектах.
Нещодавно до нас звернулася команда DeFi-платформи на Base. Їм була потрібна підтримка мультичейн доменів .bnb для користувачів, які прийшли з BNB Chain, та .arb для Arbitrum. Після аудиту архітектури ми додали мультичейн-резолвінг через sidjs, що скоротило час ідентифікації користувачів з 10 секунд до 200 мс — приріст у 50 разів. Додатково впровадили кешування DNS-записів з TTL у годину, що знизило навантаження на RPC на 90%. Детальніше про архітектуру sidjs читайте в офіційній документації.
Чому SpaceID швидше за ENS для BNB-проектів?
ENS домінує в Ethereum, але його підтримка в BNB Chain — через кросс-чейн мости із затримками в хвилини. SpaceID пропонує нативні .bnb та .arb TLD з прямим резолвінгом всередині мережі. SpaceID краще ніж ENS в 100 разів за швидкістю резолвінгу: ENS-резолвінг .eth імені на BNB Chain вимагає виклику контракту в L1 через міст (очікування до 2 хвилин), тоді як SpaceID — локальний RPC-запит (менше 1 секунди). Для проекту на PancakeSwap або інших BNB-орієнтованих dApp це знижує latency та gas cost. Наші виміри показали економію газу до 30% завдяки кешуванню записів, що при типовому навантаженні в 1000 транзакцій на день дає економію понад 0.1 ETH на місяць (приблизно $30 за поточним курсом). Середня вартість реєстрації домену .bnb на BNB Chain становить близько 0.01 ETH (~$20).
Як інтегрувати SpaceID без помилок?
Помилка №1: невірний sidAddress. Адреси відрізняються від мережі до мережі — використовуйте getSidAddress(chainId) з пакету @siddomains/sidjs. Приклад коректної ініціалізації:
import { SID, getSidAddress } from "@siddomains/sidjs"; import { ethers } from "ethers"; // BNB Chain const bnbProvider = new ethers.JsonRpcProvider("https://bsc-dataseed.binance.org"); const sidBnb = new SID({ provider: bnbProvider, sidAddress: getSidAddress("56") }); // Arbitrum const arbProvider = new ethers.JsonRpcProvider("https://arb1.arbitrum.io/rpc"); const sidArb = new SID({ provider: arbProvider, sidAddress: getSidAddress("42161") }); // Forward resolution const address = await sidBnb.name("alice.bnb").getAddress(); // Reverse resolution const name = await sidBnb.getName("0x742d35..."); // Повертає { name: "alice.bnb" } Помилка №2: ігнорування reverse resolution. Якщо в dApp потрібно відображати ім'я користувача за його гаманцем — getName() обов'язковий. Без нього UX страждає — користувач бачить лише хеш. Ми додали кешування записів у localStorage з TTL 1 година: повторні запити не б'ють по RPC, економія — до 90% зайвих викликів. SpaceID SDK надає всі необхідні методи.
Покрокова інструкція інтеграції:
- Встановіть SDK:
npm install @siddomains/sidjs ethers. - Ініціалізуйте SID для кожної цільової мережі з правильним
sidAddress. - Реалізуйте forward resolution:
sid.name(name).getAddress(). - Додайте reverse resolution:
sid.getName(address)для відображення імені користувача. - Кешуйте результати в localStorage або IndexedDB з TTL.
- Обробіть edge-кейси: неіснуюче ім'я, недоступна мережа — використовуйте fallback.
Типові помилки та їх вирішення
Серед типових помилок: невірний sidAddress (різні адреси в мережах — використовуйте getSidAddress(chainId)), відсутність reverse resolution (додайте getName()), необроблені помилки (мережа недоступна - try-catch з fallback), відсутність кешування (LocalStorage з TTL 30-60 хв). Також важливо враховувати ABI контрактів — ми використовуємо перевірену версію SDK 1.3.0 з актуальним ABI.
Що входить у роботу з інтеграції SpaceID?
Ми надаємо:
- Аудит існуючої архітектури — виявлення точок інтеграції (логін, профіль, відображення балансу).
- Підключення SDK — налаштування @siddomains/sidjs з конфігурацією підтримуваних мереж.
- Реалізацію forward- та reverse-resolution з обробкою edge-кейсів (незареєстроване ім'я, непідтримуваний TLD).
- Газову оптимізацію — кешування DNS-записів на клієнті, батчінг RPC-викликів, мінімізацію eth_call.
- Документацію та навчання — README з прикладами використання, Postman-колекція для тестів.
SpaceID чи ENS: критерії вибору
| Критерій | SpaceID | ENS |
|---|---|---|
| Основна мережа | BNB Chain, Arbitrum | Ethereum, L2 (через CCIP) |
| TLD | .bnb, .arb | .eth |
| SDK | Єдиний sidjs | Багато бібліотек (ethers, web3.py) |
| Затримка резолвінгу | < 1 сек (локально) | 10-60 сек (через міст для не-Ethereum) |
| Ком'юніті | Зростаюче, орієнтоване на BNB | Найбільше в Web3 |
Вибір залежить від аудиторії dApp. Якщо 80% користувачів — з BNB Chain, SpaceID — однозначний вибір.
Строки та вартість
Базова інтеграція (один TLD, forward resolution) займає 1-2 робочих дні та коштує від $500. Розширена (мультичейн, reverse resolution, кешування) — 3-4 дні, від $1500. Вартість розраховується індивідуально, виходячи зі складності архітектури вашого dApp. Наш досвід включає 15+ інтеграцій naming-протоколів, понад 5 років роботи в Web3, сертифікована команда розробників.
Зв'яжіться з нами для оцінки інтеграції SpaceID у ваш проект. Замовте інтеграцію — ми оцінимо обсяг робіт і запропонуємо оптимальне рішення.







