Protocol guide
Build with DeName
DeName is a protocol for readable identifiers on Stellar. A DeName combines a label with a zone and resolves to a Stellar or Soroban address through Soroban contracts.
Use the on-chain result whenever your application moves value. The HTTP API is useful for indexed lists and interface data, while the contracts remain the source of truth.
Resolve a DeName
Split the entered DeName into its label and zone, then simulateroot-registry.get_address(name, tld). A successful result is the resolver address currently set by the DeName owner.
const result = await rootRegistry.get_address({
name: 'alice',
tld: 'example',
})
const address = result.resultShow the resolved address in the final confirmation screen so the person sending a payment can review it before signing.
Registration flow
Registration uses a commit-reveal flow. A wallet first submits a commitment calculated from the DeName request and a private salt, then submits the reveal transaction to complete the registration. The salt keeps the requested DeName private while the commitment is pending.
Applications can present this as two clear wallet confirmations: reserve the request, then complete the registration.
Protocol roles
- Root registry
- Routes a zone to its corresponding TLD contract.
- TLD contract
- Stores DeName ownership, expiry and resolver records for one zone.
- TLD factory
- Creates and registers zone contracts.
- DAO treasury
- Receives the protocol share of registration payments.
Contract references
Contract IDs configured for the Stellar Mainnet deployment.
- Root registry
CBGDLM4DCPDIOB6WEVTNYJUAMQH2OCF45TYC36ITEHK4GROIJDWQ5LG7- TLD implementation registry
CDHU7LWK3UX4X6BALYSPOPODIYVZ5XUM2ZPI57GLF3PEQVFLX4A75TMI- TLD factory
CBXSWCN5EGTVFHA6R2X7PEIC4KPJMS3I6IY5COTOPQNDOAHQETEM6FWS- DAO treasury
CCELO3DO3AWKUKRVI53BYXXVUMZXZTZSFUO2Y66SIHQXGLRCVBOWQAIP