Skip to main content
Everything the Soran class does is a read-only Soroban RPC simulation. The SDK builds no write transactions — writes (registering, issuing, reverse records, primaries) are address-authorized transactions built and signed by wallets.

Constructor

Resolution

Identity & enumeration

All 0.4.0 additions — see Identity & enumeration for the trust model of each.

Reverse and primary

Namespace-level reads

Hashing

The exact on-chain hashing, exposed for interoperability:

Exported helpers and types

parseName

Normalizes case (input is lowercased before validation) and splits label.namespace; throws SoranError unless both parts are canonical labels ([a-z0-9-], 1–63 chars, no leading or trailing hyphen). The same label validation every name-taking SDK method applies to its input. (Methods taking a bare namespace validate the single label the same way; malformed addresses return null/false rather than throwing.)

SoranError

Thrown whenever a chain read cannot be completed or input is malformed — so a transient error is never silently mistaken for “unregistered” or “no address”. A null return always means a successful read that found nothing. Branch on code, not on message text.

NameRecord

NameAssurance

NameDetails / NamespaceDetails

The details() aggregate: name-level { name, node, address, resolver, holder, expiresAt, generation } (holder is non-null even for an expired name — check expiresAt, where 0n = never expires and null = never issued) plus namespace: { namespace, owner, registrar, resolver, permanent, policy } and the assurance verdict. All live chain reads; nothing indexed.

DEPLOYMENTS

The known public deployment presets (testnet today; mainnet at launch), exported so you can read the exact ids the SDK uses — see installation.