Component
Registration
Priority
P1
Summary
whiteListAddress grants an address the power to mint any available name at zero cost, with no per-name binding and no cap, through registerReserved on the registrar controller. The capability is needed for launch: it is how names are provisioned before public registration opens, and it is the only path that bypasses the Reserved tier gate for names with a stem of
This is the small, launch-scoped version of #202, which replaces the whitelist with a reservation contract after launch.
Proposal
- Key grants by label:
mapping(bytes32 labelhash => address grantee), so a label is spoken for by at most one address and an address may hold as many grants as needed. whiteListAddress(address, string label) writes one grant, with a batch overload taking an array of labels so provisioning several names stays a single transaction.
onlyWhiteListedOrOwner checks that the caller is whitelisted for the label being registered, not merely whitelisted.
isWhiteListed gains the label, or a companion view is added, so callers can query the pair.
- Migration: clear existing entries. They carry unbounded power and cannot be translated into a label-bound form.
- The registration flow is otherwise unchanged. The same account still calls
registerReserved, so the Reserved tier bypass keeps working for short names and no separate claimant has to exist or act.
Acceptance criteria
Component
Registration
Priority
P1
Summary
whiteListAddressgrants an address the power to mint any available name at zero cost, with no per-name binding and no cap, throughregisterReservedon the registrar controller. The capability is needed for launch: it is how names are provisioned before public registration opens, and it is the only path that bypasses theReservedtier gate for names with a stem ofThis is the small, launch-scoped version of #202, which replaces the whitelist with a reservation contract after launch.
Proposal
mapping(bytes32 labelhash => address grantee), so a label is spoken for by at most one address and an address may hold as many grants as needed.whiteListAddress(address, string label)writes one grant, with a batch overload taking an array of labels so provisioning several names stays a single transaction.onlyWhiteListedOrOwnerchecks that the caller is whitelisted for the label being registered, not merely whitelisted.isWhiteListedgains the label, or a companion view is added, so callers can query the pair.registerReserved, so theReservedtier bypass keeps working for short names and no separate claimant has to exist or act.Acceptance criteria
Reserved-class name (stem of five characters or fewer) for its granted label.dotns-sdkis updated:dotns account whitelisttakes the label, andis-whitelistedreflects the pair.