1. Contract Ownership
The protocol uses OpenZeppelin’sOwnable2Step ownership model.
Under this model, transferring ownership involves two steps:
- The current owner initiates the ownership transfer by nominating a new owner.
- The nominated address accepts the transfer to complete the process.
2. Authorised Contracts
The protocol consists of three primary contracts:ElyNamesMainnetElyControllerMainElyAuction
Controller authorisation
ElyControllerMain handles registration, renewals and other protocol operations.
Its authorisation allows it to coordinate name registration and update relevant name information through the core contract.
Auction authorisation
ElyAuction handles the distribution of reserved single-character names.
Its authorisation allows it to coordinate registration for successfully settled auctions.
These permissions are necessary for the contracts to work together as intended.
Authorisation is distinct from ownership: an authorised contract can perform its permitted operations without becoming the owner of the core contract.
3. Administrative Responsibilities
Protocol administration includes maintaining the configuration required for the contracts to operate correctly. Depending on the relevant contract and its available administrative functions, this includes:- Managing contract ownership.
- Configuring authorised controller and auction contracts.
- Managing treasury and royalty wallet settings.
- Configuring reserved-name permissions.
- Maintaining partner programme settings.
- Reviewing protocol configuration before deployment or changes.
4. Treasury and Royalty Configuration
Elysium Names uses separate treasury and royalty wallet settings. The treasury receives protocol payments, including registration payments, renewals and auction proceeds. The royalty wallet receives secondary-market royalties when supported marketplaces honour the royalty information returned by the NFT contract. These addresses are independently configurable. Changing one should not be assumed to change the other. Before making an administrative update, verify the intended recipient and confirm the resulting configuration onchain. For more information, see Treasury & Royalties.5. Name Ownership Is Separate
Protocol administration should not be confused with ownership of registered names. Each registered name is represented by an ERC-721 NFT. The NFT holder owns the name, subject to its registration term and the protocol’s rules. The name owner can perform the actions permitted to them, including:- Transferring the name NFT.
- Updating address and text records.
- Appointing or removing a manager.
- Setting or clearing a primary name.
6. Administrative Security Practices
Administrative access is an important part of protocol security. The following practices are recommended:- Use a secure administrative wallet.
- Consider a multisignature wallet for critical administrative ownership.
- Verify the destination address before initiating ownership transfers.
- Confirm that nominated owners can accept ownership.
- Review contract authorisations after deployment.
- Keep treasury and royalty addresses clearly documented.
- Verify configuration changes through onchain reads.
- Avoid granting unnecessary permissions to external contracts or accounts.
7. Deployment and Configuration Checks
During deployment, the protocol’s contracts must be deployed and configured in the correct order. The deployment process includes:- Deploying the core name contract.
- Deploying the controller contract.
- Deploying the auction contract.
- Configuring the required contract authorisations.
- Applying reserved-name configuration.
- Reviewing treasury and royalty settings.
- Verifying administrative ownership and permissions.
script/mainnet/DeployMainnet.s.solscript/mainnet/ScheduleAuctions.s.sol
8. Important Considerations
- Contract ownership and name NFT ownership are separate.
Ownable2Steprequires the nominated owner to accept ownership.- The controller and auction contracts require their respective authorisations to interact with the core contract.
- Treasury and royalty wallets are separate configuration settings.
- Administrative permissions should be reviewed before and after deployment.
- Testnet configuration should not be assumed to match mainnet configuration.
9. Summary
Elysium Names separates protocol administration from individual name ownership. TheOwnable2Step model provides a two-step ownership transfer process, while authorised contract permissions allow the controller and auction contracts to perform their designated operations.
Careful management of administrative ownership, contract authorisations and payment settings helps maintain the integrity of the naming protocol.