Ethereum Domain Name Service (ENS) is a decentralized system that allows users to register and manage human-readable names for their Ethereum addresses and other resources. ENS names can be used to send and receive payments, access decentralized applications, and interact with smart contracts. ENS is based on the Ethereum Improvement Proposal (EIP) 137, which defines the basic architecture and functionality of the system. EIP 137 specifies how to create and update ENS records, how to resolve ENS names to addresses or other data, and how to use ENS in various applications. To create smart contracts on ENS, developers need to understand the core components of ENS, such as the ENS registry, resolvers, registrars, and subdomains. They also need to follow the best practices and guidelines for developing secure and user-friendly ENS applications.