Registration
Registering a .gwei name takes two transactions separated by a short wait. This is not a
limitation; it is the mechanism that makes registration fair.
Why two transactions?
Ethereum transactions are public before they confirm. If registration were a single transaction, anyone watching the mempool could see the name you want, pay more gas, and register it first, then sell it back to you. This is called front-running.
GNS uses a commit–reveal scheme instead:
- Commit. You send
commit(hash)where the hash seals together the name, your address, and a random secret generated in your browser. The transaction reveals nothing about the name itself. - Wait at least 60 seconds. The contract refuses reveals for commitments younger than a minute. By the time anyone could react to your reveal, your commitment is already ahead of theirs.
- Reveal. You send
reveal(name, secret)with the registration fee. The contract checks that the hash matches, mints the ERC-721, and refunds any excess payment.
A commitment is valid between 60 seconds and 24 hours after it lands. If you miss the 24-hour window, the commitment expires and you simply start again with a new one. The only cost is the gas of the first transaction.
The secret (read this)
The random secret lives only in your browser’s local storage. It is saved before the commit transaction is broadcast, and this site will show any pending registrations on the Register page so you can resume them.
Be careful with anything that wipes site data: if the secret is lost between commit and reveal, the commitment can never be completed. The name is not lost (nobody else can use your commitment either), but the gas you spent on the commit is. You can export your pending registrations as a JSON backup from the register page.
Normalization
Names are stored lowercase. Uppercase ASCII letters are automatically lowercased
(Alice → alice), and the site always confirms the final form with the contract itself
before you commit. Names must be valid UTF-8, cannot contain dots, spaces, or control
characters, and can be 1 to 255 bytes long. Non-ASCII names (emoji, accents, other scripts)
are allowed by the contract, and the site additionally applies strict Unicode normalization to them
and warns you, because visually similar characters can be abused for impersonation.
Duration, expiry, renewal
- A registration lasts 365 days from the reveal.
- Renewing costs the same as registering and always extends from the current expiry date, so renewing early never wastes days.
- Renewals are permissionless: anyone can pay to renew any name, and it always extends the registration for the current owner.
- After expiry there is a 90-day grace period: the name stops resolving and cannot be transferred, but it can still be renewed at the normal price.
- After the grace period, the name enters a premium auction. See Pricing.
If someone else wants the same name
Only one commitment can win. If a name is registered between your commit and your reveal, your reveal simply fails and the site tells you before you spend the fee. Your commitment stays valid for any other outcome, but the name is gone. Speed matters only in the rare case where two people want the same name within the same minute.