Integrating SpaceID for Multi-Chain Domains in dApps

We often receive requests for domain name integration in dApps. On the surface, it seems routine, until you hit the limitations of single-network resolvers. **SpaceID** is a naming protocol that provides multi-chain domains for BNB Chain and Arbitrum, solving the unification problem: one SDK for mul

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

We often receive requests for domain name integration in dApps. On the surface, it seems routine, until you hit the limitations of single-network resolvers. SpaceID is a naming protocol that provides multi-chain domains for BNB Chain and Arbitrum, solving the unification problem: one SDK for multiple chains. But integration has pitfalls—from ABI incompatibility to ignoring reverse resolution. In this article, we share our integration experience from real projects, demonstrating our proven expertise and reliable solutions.

Recently, a DeFi platform on Base approached us. They needed multi-chain domain support for .bnb for users coming from BNB Chain and .arb for Arbitrum. After auditing the architecture, we added multi-chain resolving via sidjs, reducing user identification time from 10 seconds to 200 ms—a 50x improvement. Additionally, we implemented DNS record caching with a one-hour TTL, cutting RPC load by 90%. Our proven track record includes 15+ naming protocol integrations across Web3, with guaranteed compatibility. Read more about the sidjs architecture in the official documentation.

Why Is SpaceID Faster Than ENS for BNB-Based Projects?

ENS dominates Ethereum, but its support on BNB Chain relies on cross-chain bridges with minute-long delays. SpaceID offers native .bnb and .arb TLDs with direct on-chain resolving. For a project on PancakeSwap or other BNB-oriented dApps, this reduces latency and gas costs. Compare: ENS resolving an .eth name on BNB Chain requires calling a contract on L1 through a bridge (up to 2 minutes of waiting). SpaceID—a local RPC request (less than 1 second). The performance difference is up to 100x for frequent queries. Our measurements showed gas savings of up to 30% thanks to record caching. At a typical load of 1000 transactions per day, that saves over 0.1 ETH per month ($250). The average cost to register a .bnb domain on BNB Chain is about 0.01 ETH ($25).

How to Integrate SpaceID Without Errors?

Error #1: incorrect sidAddress. Addresses differ by network—use getSidAddress(chainId) from the @siddomains/sidjs package. Example of correct initialization:

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..."); // Returns { name: "alice.bnb" } 

Error #2: ignoring reverse resolution. If your dApp needs to display the user’s name by their wallet address—getName() is mandatory. Without it, UX suffers—users see only a hash. We added caching of records in localStorage with a 1-hour TTL: repeated requests don’t hit RPC, saving up to 90% of unnecessary calls. The SpaceID SDK provides all necessary methods.

Step-by-Step Integration Instructions:

  1. Install SDK: npm install @siddomains/sidjs ethers.
  2. Initialize SID for each target network with the correct sidAddress.
  3. Implement forward resolution: sid.name(name).getAddress().
  4. Add reverse resolution: sid.getName(address) to display the user’s name.
  5. Cache results in localStorage or IndexedDB with a TTL.
  6. Handle edge cases: nonexistent name, network unavailability—use fallback.

Typical Errors and Their Solutions

Error Cause Solution
Incorrect sidAddress Different addresses across networks getSidAddress(chainId)
Missing reverse resolution Only forward Add getName()
Unhandled errors Network unavailable Try-catch with fallback
No caching Frequent RPC calls LocalStorage with 30–60 min TTL

What’s Included in SpaceID Integration?

We provide:

  • Audit of existing architecture—identify integration points (login, profile, balance display).
  • SDK setup—configure @siddomains/sidjs with supported network configuration.
  • Implementation of forward and reverse resolution with edge-case handling (unregistered name, unsupported TLD).
  • Gas optimization—client-side DNS caching, batched RPC calls, minimized eth_call.
  • Documentation and training—README with usage examples, Postman collection for testing, and ongoing support.

Our deliverables guarantee a seamless integration with minimal downtime. With over 5 years of Web3 development experience and 15+ naming protocol integrations, we ensure reliable results.

SpaceID vs ENS: Selection Criteria

Criterion SpaceID ENS
Primary network BNB Chain, Arbitrum Ethereum, L2 (via CCIP)
TLD .bnb, .arb .eth
SDK Unified sidjs Multiple libraries (ethers, web3.py)
Resolving latency < 1 sec (local) 10–60 sec (via bridge for non-Ethereum)
Community Growing, BNB-focused Largest in Web3

Choice depends on the dApp audience. If 80% of users come from BNB Chain, SpaceID is the clear choice.

Timeline and Pricing

Basic integration (one TLD, forward resolution) takes 1–2 business days. Extended (multi-chain, reverse resolution, caching) takes 3–4 days. Pricing is individual, based on the complexity of your dApp architecture. Our experience includes 15+ naming protocol integrations with a proven track record.

Contact us for a SpaceID integration assessment for your project. Order integration—we'll evaluate the scope and offer an optimal solution.