# Providing Low-Cost ENS Subdomains Based on Scroll [[EN]](https://hackmd.io/@Jayden-sudo/Byz5Zd8Kp) [[zh-CN]](https://hackmd.io/@Jayden-sudo/r1HxMu8Y6) *The interaction costs of ENS on Layer1 hinder its widespread adoption.* As SoulWallet is a contract-based wallet (meaning we can't achieve consistent multi-chain addresses), ensuring a low-cost ENS for users is crucial for a good experience. Currently, we own the swl.eth domain and aim to offer users nearly free subdomains (e.g., bob.swl.eth). There are basically two solutions: 1. Completely store all subdomains outside the blockchain using [EIP-3668](https://eips.ethereum.org/EIPS/eip-3668). - Pros 👍: Zero gas fees for users during the subdomain usage. - Cons 👎: Completely centralized (which is unsustainable in the long run). 2. Migrate ENS subdomain to Scroll network. - Explanation: - In Scroll, we'll deploy a control contract for swl.eth subdomains. Users can set their subdomains on the Scroll network. - When ENS is resolve, our server will provide proof of a specified slot in the Scroll network. Users can use this proof to verify domain information (e.g., bob.swl.eth) on Layer1. - Pros 👍: Decentralized, and gas fees on the Scroll network is low. - Cons 👎: **<u>Delay</u>** (users need to wait for Scroll execution to finalize transaction on Layer1 before their settings take effect). **We lean towards 'Solution 2'.** The main issue in Solution 2 is the longer waiting time for users (although Scroll has advantage over Optimistic Rollup in Finalize Transaction, the delay of nearly 1 hour still significantly impacts user experience). **Need help:** Can we verify using the data stored in [commitBatch](https://etherscan.io/address/0x2e07f0fba71709bb5e1f045b02152e45b451d75f#code) ( `committedBatches[_batchIndex] = _batchHash;` )? - Trust: For non-financial products like ENS, to maintain user-friendly experiences, we may compromise some security (better than complete centralization). Moreover, the ENS resolve process, such as generating proof through our server, <u>implies that our server and the data in the Commit Transaction need to conspire together to provide fake data</u>. I am currently uncertain whether using the batchHash stored in committedBatches can be used in Scroll to verify the latest storage status: proving specific data stored in a particular slot in the Scroll network. And what other potential risks might be associated with using the data from commitBatch? --- - Thank you very much, please feel free to message me if not clear!