Guide: Registering a Subname
Give your app a human name — myapp.chainrender.eth — so it's discoverable and resolvable by name instead of by
hash. Registration is open to anyone, ownerless, and gated only by a refundable stake (an anti-spam cost, not a
fee or an approval).
How it works
Names are subnames under chainrender.eth, managed by the ownerless SubnameStakeRegistrar. You register a
label (myapp) pointing at your app's component hash by posting a small refundable stake. An ENSIP-10 wildcard
resolver then makes myapp.chainrender.eth resolve in any ENS-aware tool — no per-name ENS transaction needed.
The design: the registrar is the source of truth; ENS is a read-only projection of it. So naming stays ownerless and verifiable while remaining fully ENS-compatible. See ENS Integration.
Register
SubnameStakeRegistrar.register("myapp", appComponentHash) // + the refundable stake (msg.value)
- No approval, no gatekeeper. Anyone can register; entry is open.
- The stake is refundable. It's an anti-spam deposit, not a payment.
- Reserved names (a fixed carve-out set at deployment) are protected and can't be claimed.
The lifecycle (three states)
| State | Meaning |
|---|---|
| Active | Staked and live. Your name resolves; it appears in the catalog. |
| Refunded | After a lock window with no upheld flag, you withdraw your stake. The name stays — now an established, honest entry. |
| Slashed | If a quorum of the immutable attester set upholds a flag (e.g. spam/abuse), the stake is forfeited and the entry is demoted. Slashing can demote, never block — the system stays un-censorable. |
The key property: anyone can register; not everyone is surfaced equally. Entry is open (a refundable stake); prominence is earned (a clean history, attestations). No one can prevent you from registering; no one can be forced to feature you.
After registering
- Your app resolves at
myapp.chainrender.eth. - Add versioning so you can update safely (timelocked, observable) — see Update a Deployed App.
- Withdraw your stake after the lock window (it's yours; it was only ever an anti-spam deposit).
Ownerless by construction
The registrar has no owner, no admin, no setter. Every parameter — the stake size, lock window, slash quorum, treasury, reserved list — is fixed at deployment and can never be changed. Every wei is either refundable to you or routed by fixed rules. You're not trusting an operator; you're trusting immutable code.