1. Deployment Overview
The protocol consists of three primary contracts:ElyNamesMainnet— manages name NFTs, ownership, records, expiry, resolution and royalties.ElyControllerMain— manages registration, pricing, renewals, referrals, discounts and partner programmes.ElyAuction— manages the auction distribution of reserved single-character names.
2. Deployment Script
The main deployment script is:script/mainnet/DeployMainnet.s.sol
This script handles the deployment and initialisation of the protocol contracts.
Its responsibilities include:
- Deploying
ElyNamesMainnet. - Deploying
ElyControllerMain. - Deploying
ElyAuction. - Configuring the controller’s authorisation on the core name contract.
- Configuring the auction contract’s authorisation.
- Applying the reserved-name configuration.
- Optionally transferring contract ownership to the configured final owner.
Final owner
The deployment configuration includes aFINAL_OWNER setting.
When configured, the script can transfer administrative ownership to the designated address.
Because the contracts use Ownable2Step, the nominated address must accept ownership to complete the transfer.
The final owner should be a verified administrative wallet. A multisignature wallet is recommended for critical production administration.
3. Reserved-Name Configuration
The deployment process also applies the protocol’s reserved-name configuration. This includes:- Designated brand or protocol-reserved labels.
- All 36 single-character labels, consisting of
a-zand0-9, reserved for auction distribution.
4. Auction Scheduling
The separate auction scheduling script is:script/mainnet/ScheduleAuctions.s.sol
It schedules the 36 single-character auctions according to the configured auction parameters.
The documented auction configuration includes:
The scheduling script should be executed against the intended network and verified before announcing auction start times.
5. Deployment Configuration
Before deployment, developers should review the configuration values used by the scripts. Important settings include:- Network and chain configuration.
- Deployment account and signing permissions.
- Constructor arguments.
- Final administrative owner.
- Treasury wallet.
- Royalty wallet and royalty rate.
- Controller and auction authorisations.
- Reserved-name configuration.
- Auction schedule and parameters.
6. Recommended Deployment Sequence
A deployment should follow a controlled sequence.Before deployment
- Review the contract source and deployment scripts.
- Confirm the target network.
- Verify the deployment wallet and required funds.
- Check constructor arguments and configuration values.
- Confirm the intended administrative owner.
- Verify treasury and royalty recipient addresses.
During deployment
- Deploy the core name contract.
- Deploy the controller contract.
- Deploy the auction contract.
- Configure the required contract permissions.
- Apply reserved-name settings.
- Complete any configured ownership transfer.
After deployment
- Verify the deployed contract addresses.
- Confirm controller and auction authorisations.
- Check ownership and administrative permissions.
- Verify treasury and royalty configuration.
- Test registration and name resolution.
- Test renewal and ownership operations.
- Confirm reserved-name restrictions.
- Verify the auction configuration before scheduling or opening auctions.
7. Testnet and Mainnet
The protocol has been developed and tested on Elysium Testnet. The documented testnet configuration is:
These settings are specific to testnet.
For mainnet deployment, use the official Elysium mainnet chain configuration, RPC endpoint and verified contract addresses.
Never reuse testnet addresses or assume that testnet configuration represents the live mainnet deployment.
8. Deployment Scripts and Source Code
The deployment scripts and contract source are maintained in the Elysium Names repository: https://github.com/bonaventure001/ely-names Relevant script locations:9. Important Considerations
- Deploy the contracts to the intended network.
- Verify all contract addresses after deployment.
- Confirm the required contract authorisations.
- Review ownership transfers carefully.
- Check treasury and royalty settings separately.
- Confirm reserved-name configuration before public registration.
- Schedule auctions only after verifying the auction contract and parameters.
- Keep deployment credentials and administrative keys secure.
- Do not publish unverified addresses as official deployment information.