Give your community members a name that is really theirs

A community owns one .eth name; each member receives a subdomain under it. Members edit their own records and can transfer the name without going through anyone — but the contract owner keeps the ability to overwrite and reclaim it, which step 3 spells out.

Testnet only

How it works

Three steps, nothing else.

1
The community owns a first-level name, e.g. community.eth.
An ordinary ENS name the community holds itself. Nothing is handed over.
2
A member is granted a subdomain on joining, e.g. alice.community.eth.
Granted automatically by an upstream system, or by hand in the admin console. Members do not sign up and do not log in.
3
The name resolves everywhere, and belongs to the member.
It is an ERC-721: the member edits records and transfers it without asking anyone.
To be exact: the contract owner can still overwrite records and reclaim the NFT. Self-hosting makes the community that owner; delegated hosting makes it the operator. “The name is entirely the member’s and nobody can take it” is not true of this architecture.

Two ways to run it

Self-hosted

You hold every key. You trust nobody.

Run this repository yourself and the contract owner is your address. Issuing names, editing records and resolution are all in your hands. The cost is that you keep those keys safe.
Apache-2.0, open source

Run by an operator

You keep ownership; resolution is revocable at any time.

One setResolver on ENS is all it takes. But be clear: for names already issued, the operator can still overwrite and reclaim them — that follows from the architecture and is not something anyone can promise away.

Where to go