Skip to main content
You own a namespace; now give people names in it. Issuance happens in the console’s Issuance tab — or programmatically from your own backend with @sorandomains/owner; the contracts are permissionless either way.

Activate your registrar (once)

A namespace issues nothing until its own Registrar contract exists. Activation deploys one — signed by your wallet, owned by your wallet — as a one-time step:
1

Choose the ownership policy

Every name your registrar issues carries this policy, and it’s what holders (and their wallets) see as the ownership guarantee:
  • Reclaimable — you can take an issued name back. Right for names tied to an ongoing relationship (employees, customers, subscriptions).
  • Permanent — issued names carry no expiry and no reclaim path in the deployed code; closing the one-way door later locks that in absolutely — the code freezes, enforced against everyone, including you.
2

Sign and deploy

The console prepares the deploy transaction; your wallet signs it. The registrar lands on chain owned by your wallet, and issuance unlocks. Only the namespace owner’s wallet can activate.
The policy switch is one-way. A reclaimable registrar can later be made permanent (an owner-only action), but permanent can never go back to reclaimable — that’s the point of the guarantee. Starting reclaimable keeps your options open; starting permanent is a commitment to your holders.
If the deploy transaction is slow to confirm, the console keeps the attempt pinned — the policy choice locks to the in-flight deploy and the button won’t re-arm until the outcome is final, so you can’t accidentally race two deploys.

Issue a single name

Enter a label and the holder’s G… address; the name is issued as label.yournamespace, directly to the holder’s wallet. Each name is its own on-chain transaction. On a self-custody namespace your wallet signs it; the console then confirms the name landed with the intended holder before calling it done.

Issue in bulk from CSV

For onboarding a user base, upload a CSV of rows:
One label,holder pair per row. The console validates every row up front (bad labels and duplicate rows are counted and skipped), then issues sequentially — each name is still its own transaction, so keep the tab open while the run executes. You get a per-label report at the end: which rows succeeded, which failed and why, and which are uncertain (submitted but not yet confirmed) so you never blind-retry a name that may still land.

What it costs

Names are free. Soran charges nothing per name — the only costs are Stellar’s own network fees and storage rent, paid in XLM by whoever signs (your wallet on self-custody namespaces): Figures are benchmarked on testnet; the live numbers for your namespace are on the console’s Billing tab. At these rates, issuing 10,000 names costs on the order of 800 XLM once, and roughly 1,600 XLM a year to keep every one of them hot.

Cold names and waking

Cold is not expiry:
  • A name idle past the dormancy threshold (90 days by default, operator-tunable) is marked cold: the platform stops paying its storage rent, and its ledger entry may eventually be archived by the network. It still belongs to its holder. Ownership is never decided by storage.
  • A cold name wakes on its next use: the next resolution through Soran instantly returns it to live status in the hosted resolver, and the platform’s keeper resumes paying its storage rent while its ledger entry is still present on chain. If the network has already archived the entry, the name stays readable through the hosted API, but an explicit on-chain restore is needed before direct contract reads resolve it again — nothing to re-buy either way.
  • A name going cold fires the went_cold webhook, so you can watch dormancy across your namespace.
This means a dormant user costs you nothing, and a returning user’s name works again through the hosted path immediately. If you want a name fully hot before a big moment (a campaign, a migration), resolve it once — ideally before its ledger entry archives.

Reclaiming and transferring

Post-issuance lifecycle lives in the Names tab: reclaim (only on reclaimable registrars — issuers can’t reclaim, only owners and admins), transfer to a new holder, and per-name detail. On self-custody namespaces these are wallet-signed like everything else.