# ENS on Swarm potentia bounty ## Motivation: E.T. wants to use ENS, but the write function is expensive and slow due to high gas fees and network usage and for reading it usually uses a central service because they do not want to sync the whole blockchain. They want to find a way to use ENS that cost allows regular cheap updates and lightweight decentralized queries: fortunately they can use ENS on Swarm, a decentralized off-chain resolver, handled completely off-chain yet in a cryptographically provable way allowing for trustless provision in a decentralized environment. ## Objective: The primary objective of this bounty is to create a fully functional off-chain resolver system for ENS on the Swarm network. This will involve developing the necessary libraries, and interfaces to enable decentralized and cryptographically provable name resolution in a trustless manner. ## Scope: The scope of this bounty includes the following components: **Identity Addressing and SOC Implementation:** * Use the Single Owner Chunk (SOC) based Feed concept of Swarm Network. * Design and develop the mechanism for identity addressing using Ethereum addresses and consensual topics. * Design a develop an abstraction for writing/reading ENS Swarm Feeds (ESF) **User Record Handling:** * Develop the process for uploading and versioning user records/metadata off-chain. * Create a mechanism for users to retrieve and download uploaded data based on the Ethereum address and feed topics **Moving ENS Registry Data Off-Chain:** * Design and implement a service feed to store ENS Registry related information. * Create a workflow and the required tools to manage service feeds (e.g. mint domain via accessing API endpoint or using [Graffiti Feed](https://github.com/fairDataSociety/FIPs/blob/master/text/0062-graffiti-feed.md) or PSS) * Apply/extend [EIP-3668](https://eips.ethereum.org/EIPS/eip-3668) for Swarm name resolving. * Integrate the off-chain resolver logic with existing or newly created dApp that interact directly with Swarm. (Preferably using some proxy solution as well such as [Swarm Extension](https://github.com/ethersphere/swarm-extension/) or [Blossom](https://github.com/fairDataSociety/blossom)) **Extras:** * Implement data structures to facilitate subdomain indexing and retrieval. * Implementation and Documentation: * Create clear and comprehensive documentation for the implemented components, including usage instructions and code examples. * Provide testing scripts and scenarios to ensure the functionality and security of the solution. * Develop the necessary JavaScript library for user/revolver handler and registry handler. **ENS App Integration:** * Create a website (e.g., swarmens.eth) that utilizes the developed libraries and showcases the functionality of the off-chain resolver. * Implement frontend application with support for one domain and extend it to additional domains. ## Implementation Approach The implementation should follow [this](https://discuss.ens.domains/t/ens-on-swarm-decentralized-storage/17642) proposal, leveraging the concepts of identity addressing, SOC-based feeds, and Swarm network capabilities. The development should be driven by experienced JavaScript developers familiar with ENS and Swarm technologies. **Bounty Reward:** The bounty reward for this project will be $XX,XXX USD to be paid in BZZ to be distributed among the contributors upon successful completion of the specified scope. The reward structure will be detailed in the final agreement. **Timeline:** The estimated timeline for the completion of this bounty is approximately 350 hours. The exact timeline will be discussed and agreed upon with the selected development team. **Deliverables:** * Fully functional JavaScript libraries for user/revolver handler and registry handler. * Documentation explaining the usage, implementation details, and security considerations of the solution. * Testing scripts and scenarios to ensure the robustness of the developed components. * A frontend application showcasing the off-chain resolver functionality. * Codebase hosted in a public repository with proper version control. **Submission requirements:** * A final delivery will include: * Open source code license: * any license for the project shall include terms substantially similar to those of version 1.9 of the Open Source Definition, promulgated by the Open Source Initiative at https://opensource.org/osd-annotated. * Documentation: how to run, how it works * Recorded video demonstration of the working solution * A working link to a public Github or Gitlab repository containing: the code, presentations, demo, documentation, and license information * The submitted solution must be a working product ready to be deployed in production * The solution uses Swarm network as the underlying storage * **Selection Process:** A selection committee will evaluate proposals and portfolios of interested development teams. The team with relevant experience and a solid implementation plan will be selected for the bounty. **Note:** This bounty proposal is a high-level overview. Detailed technical specifications, requirements, and terms will be discussed and agreed upon with the selected development team. The final bounty agreement will outline all necessary details. If you're considering posting this bounty, make sure to adapt and refine it to your specific needs, and involve legal counsel to ensure that all terms and conditions are accurate and compliant. ## Eligibility Employees, contractors, or officers of Swarm Foundation and their affiliates are not eligible to participate in the bounty. Participants can register as a team or as individuals. Participants can either join other teams or work alone. We believe in collaboration and encourage participants to work together. ## Important Links [Swarm Gateway](https://gateway.ethswarm.org/) [White Paper](https://www.ethswarm.org/swarm-whitepaper.pdf) [Bee Documentation](https://docs.ethswarm.org/) [Swarm Discord](https://discord.gg/GU22h2utj6) [FDS Github](https://github.com/fairDataSociety) [FDS Discord](https://discord.com/invite/vw3PmWf2rE) ## No Liability The participant acknowledges and agrees that, to the fullest extent permitted by law, he/she will not hold Swarm liable for any and all damages or injury whatsoever caused by or related to his/her participation to the bounty under any cause or action whatsoever of any kind, including, without limitation, actions for breach of warranty, breach of contract or tort (including negligence) and that Swarm shall not be liable for any indirect, incidental, special, exemplary or consequential damages, including for loss of profits, goodwill or data, in any way whatsoever arising out of the participation to the bounty. ## Governing Law and Jurisdiction These terms as well as all matters arising out or in relation to them shall be governed by the laws of Switzerland, to the exclusion of the rules on conflicts of laws. Any claim or dispute regarding these terms or in relation to them shall be subject to the exclusive jurisdiction of the Courts of Neuchâtel, Switzerland, subject to an appeal at the Swiss Federal Court.