|Implements the ERC721 standard||Implements the ERC721 standard|
|Hosts a single .crypto domain ending||Hosts multiple domain endings|
|Separate resolver and registry contracts||Single contract contains both the registry and resolution data|
|Requires a Resolver lookup call in order to resolve domain data||Does not require a Resolver (RecordStorage) lookup call since all domain data stored in a single smart contract|
|Domain minting governed by MintingController and WhitelistedMinter||Domain minting governed by MintingManager|
Overall, the main difference between CNS and UNS is that UNS has a simplified architecture which is optimized for higher volumes of transaction and supporting multiple domain endings.
The next difference is that unlike CNS, UNS doesn’t have separate resolver contracts for domains.
- Resolution data is stored within the registry itself which allows retrieving data in a single smart contract call.
- This change removes unnecessary events and functions that were used for setting custom resolvers, thus improving optimizations.
Another major change in UNS when compared to CNS is simplified minting control. While CNS is controlled by two smart contracts, UNS has a simpler MintingManager that combines functionality of the old MintingController and WhitelistedMinter.
For a detailed list of breaking changes in UNS, see https://github.com/unstoppabledomains/uns#backward-incompatibility.