Интеграция SpaceID в dApp: мультичейн-домены .bnb .arb

Мы часто сталкиваемся с запросами настройки доменных имён в dApp. На первый взгляд, рутина, пока не упираешься в ограничения односетевых резолверов. **SpaceID** — это naming protocol, обеспечивающий мультичейн домены для BNB Chain и Arbitrum, решающий проблему унификации: один SDK для нескольких цеп

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Мы часто сталкиваемся с запросами настройки доменных имён в dApp. На первый взгляд, рутина, пока не упираешься в ограничения односетевых резолверов. 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 с прямым резолвингом внутри сети. Для проекта на PancakeSwap или других BNB-ориентированных dApp это снижает latency и gas cost. Сравните: ENS-резолвинг .eth имени на BNB Chain требует вызова контракта в L1 через мост (ожидание до 2 минут). SpaceID — локальный RPC-запрос (менее 1 секунды). Разница в производительности — до 100x для частых запросов. Наши замеры показали экономию газа до 30% благодаря кэшированию записей. Что при типичной нагрузке в 1000 транзакций в день даёт экономию более 0.1 ETH в месяц. Средняя стоимость регистрации домена .bnb на BNB Chain составляет около 0.01 ETH.

Как интегрировать 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 предоставляет все необходимые методы.

Пошаговая инструкция интеграции:

  1. Установите SDK: npm install @siddomains/sidjs ethers.
  2. Инициализируйте SID для каждой целевой сети с правильным sidAddress.
  3. Реализуйте forward resolution: sid.name(name).getAddress().
  4. Добавьте reverse resolution: sid.getName(address) для отображения пользовательского имени.
  5. Кэшируйте результаты в localStorage или IndexedDB с TTL.
  6. Обработайте edge-кейсы: несуществующее имя, недоступная сеть — используйте fallback.

Типичные ошибки и их решение

Ошибка Причина Решение
Неверный sidAddress Разные адреса в сетях getSidAddress(chainId)
Отсутствие reverse resolution Только forward Добавить getName()
Необработанные ошибки Сеть недоступна Try-catch с fallback
Отсутствие кэширования Частые RPC-запросы LocalStorage с TTL 30-60 мин

Что входит в работу по интеграции 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 рабочих дня. Расширенная (мультичейн, reverse resolution, кэширование) — 3-4 дня. Стоимость рассчитывается индивидуально, исходя из сложности архитектуры вашего dApp. Наш опыт включает 15+ интеграций naming-протоколов.

Свяжитесь с нами для оценки интеграции SpaceID в ваш проект. Закажите интеграцию — мы оценим объём работ и предложим оптимальное решение.