Last updated a year ago
No open source framework exists to sign-in to dApps using your wallet or a CNFT. Developers must implement it manually, increasing development time and introducing security risks.
An open source JS framework that allows developers to implement sign-on/sign-in with wallet and CNFTs, and easy integration to existing user management systems.
This is the total amount allocated to Open-source sign-in framework: Sign-in with wallet and/or CNFTs.
Cem Karaca, Emir Olgun, Donald Isufi
No dependencies.
Project will be fully open source.
The Problem
NFTs are widely used as identifiers for many NFT enjoyers. People buy NFTs and through their NFTs they feel like a part of a community. Yet that feeling doesn’t translate to actual use, because most apps don’t allow for a user to sign-in to a platform with an NFT in their wallet.
Some platforms may deploy this solution on their own platform, but developers must develop this non-trivial feature on their own. There is no open source implementation that they can simply adopt.
The Solution
We will develop an open source JS framework that allows developers to implement an NFT sign-on/sign-in mechanism for their app.
The solution will provide a Cardano dApp boilerplate with NFT Authentication and explanatory documentation to start building on Cardano. It will include helper functions that allow developers to integrate in their apps:
Who will the project engage?
The project is first and foremost for developers. Using this library, developers will have an easy way to implement sign-in with wallet and NFTs within their projects, and integrate these methods with traditional user management systems in databases.
The proposal will allow developers to simply implement sign-on/sign-in functionality using our open source repository. This will simplify the developer experience to integrate NFTs and wallets into their dApps.
The project aligns aims to establish a new open source repository that the community can work on to build extensive NFT sign in capabilities. This aligns with the potential direction specified in the challenge as “Samples, recipes and templates”. This proposal does just that, it establishes one way to build in NFT sign in, wallet sign in for dApps, so developers don’t have to build in this functionality from scratch.
Having open source projects that tackle this problem will lead to convergence in the community and lead to standards being developed, which will make the open source community stronger, and development easier.
Since this is an open source framework to be made available to the public on github, it’ll be easy to measure the success of the project. We will look primarily at this activity:
Together, these metrics provide a good picture of how much engagement our project receives from developers. The higher the numbers, the greater the success.
With this project, the number of projects that use wallet or CNFT logins will increase. This will help developers onboard to Cardano, provide an easier on-ramp for new developers to start building on Cardano, and thus improve the productivity and growth of Cardano. All this impact is difficult to measure, but the metrics listed above will provide a very good proxy.
NFT Auth will reduce the need for backend databases or code interpreters by using NFTs or NFT collections as the authentication mechanism. Statically compiled code with cnft_auth module with predefined settings will work without a backend server.
As we develop the framework, it’ll be available on github as a public repository. So our outputs will be shared as we develop it. To spread these outputs we will share it on official Cardano and IOG developer channels on Discord and Telegram, as well as in community groups such as Gimbalabs, Konma, and Catalyst Swarm. We will also provide updates on our progress through our Twitter account to reach more of the Cardano developer community.
This will get our work into the hands of hopeful developers looking to build cNFT projects. We expect this to result in forks of our own project, further development of the framework by others, and use of the project as a base on other projects.
To complete this project successfully: we need to build the JS framework, and get it into the hands of developers to use it. This means there are two critical capabilities needed:
As a team we have extensive capabilities and expertise on building software, including JS:
So developing the framework will be no challenge. Promoting it on the other hand is very simple. The target of this project are developers and developers have several resources they use to get information. One is github itself, a good repository name will do the trick to allow developers to find the repository. Extra to that, we will write messages on any and all developer channels on Cardano to promote the repository and get feedback from other developers.
Managing Funds
We are a previously Catalyst funded organization, and we keep all our financial records available to the public. You can verify how we've spent our previous funding to validate the trust put in us by the Cardano community to manage our funds wisely. You can find our financials on our Discord server.
The goal of this project is to
Goals 1 and 2 will be easy to determine if we have reached it. Does the framework
Goal 3 is easy to know from the engagement on the github repository. The number of stars, forks, comments, feature requests all point to the project being used.
Goal 4 will also be easy to determine. Are there any non-team members forking and creating pull requests? If we get a single one to update the repository, that’s an open source success. We will aim at 5 individual developers here though to ensure a healthy sustainable repository going into the future.
Milestone 1 - Create boilerplate
Timeline: 1 month
Milestone 2 - Sign up&in with wallet
Timeline: 1 month
Milestone 3 - Sign up&in with an NFT
Timeline: 1.5 months
Milestone 4 - SSO Metadata
Timeline: 1.5 months
The deliverables for each milestone are listed below.
Milestone 1 - Create boilerplate
Deliverables: JS framework launched on github, to create a simple dAPP
Milestone 2 - Sign up&in with wallet
Deliverables: Sign up and sign in with wallet functionality added to the framework
Milestone 3 - Sign up&in with an NFT
Deliverables: Sign up and sign in with an NFT functionality added to the framework
Milestone 4 - SSO Metadata
Deliverables: A single sign on NFT metadata is created, with functionality to implement user security levels, expiry dates, etc.
The outcome of this work is to advance the state of authentication with wallet, and with NFTs in the Cardano ecosystem. This research and development work will move the needle on authenticating with wallets and NFTs. As an open source project, it will be developed further to establish a standard in the ecosystem, or help and inspire others to build their own solutions so that in short time we will have established authentication systems that we can use to build full dApps with.
As a team we will set aside 1 day each every week, meaning 8 hours of work for 4 people or 32 hours total. Rating that work at 25 USD/hr that is 800 USD per week.
We estimate the project will last about 14 weeks, but development is always fraught with unknowns and time estimates usually take much longer. There is also the risk of ADA/USD price volatility, which may impact our budget dramatically.
That’s why to include potential setbacks and unknowable risks, we’ve extended the project timeline to 20 weeks. So including those risks the budget for the project is 16,000 USD for 20 weeks of 32 hours of development work.We don’t expect any additional costs for this project due to the nature of it.
At the time of submission ADA/USD is 0.29 parity, so our budget is: 16,000/0.29 = 55,172 ADA
For just about 0.87% of the challenge budget, this proposal advances the state of decentralized authentication, offers a quick and easy way for developers to integrate CNFT and wallet logins to their platforms. It will help the open source ecosystem make way in a critical area: authentication.
The budget is very small at 16,000 USD for this work. Given it is a highly technical subject that requires expertise, we believe it represents good value for Cardano.
Cem - I completed a Master's degree in Electrical & Electronics Engineering. My thesis was about to create a complete Video on Demand system with client-server architecture with its own network protocol called Reliable UDP. After graduating, I set up a high-security financial data center in 2004. Then, in 2019, I started a new cyber security startup with three of my staff. The same year, the startup was funded by the largest bank in Turkey.
I started programming when I was 12 years old, and about 6 years later, I met the Internet, which introduced so many things to me. Open source was the biggest among them. Later on, I wrote a book about Linux and open-source systems. For me, open-source philosophy was the key to real human potential. It was making the secrets of the institutions public.
I have been building websites since 1997 and have witnessed the transition from static pages to dynamic sites that utilize scripts and databases. In the past, software developers often worked alone and had to be proficient in various programming languages. However, with the advancement of web technologies, design has been separated from code, allowing designers to focus solely on aesthetics while developers on functionality. I witnessed it all. With over 20 years of experience in data center operations, I have managed the installation and maintenance of numerous PCI-DSS-certified e-money infrastructures, from website design to team management and database configuration.
People can now form communities independent of borders, authorities, and censorship using Cardano. We just need to build solutions on top of it. For the first time in history, we have enough technology to take collective action to create impact and pressure. We better use this chance wisely, otherwise, there will be no world left to live on anymore. In this context, I will continue to do my part with my knowledge and experience.
https://www.linkedin.com/in/ckaraca/
Cem is the senior engineer on the project, the design lead, and frontend engineer. He will conceptualize the architecture, and in building the software.
ChaKhan - Co-founder of littlefish Foundation. In Project Catalyst and involved in Cardano since Fund 7. Organization building, governance, token engineering with long term interest in economics, game theory, behavioral psychology, political science, and history. 3+ years experience as a Backend Developer. Python, REST, Postgres, data modeling. Electrical and Electronics Engineering Major.
https://www.linkedin.com/in/çağkan-acarbay-b2210b136/
https://github.com/cagkanacarbay/
Chakhan has several roles on the project: he is the project lead, backend engineer, and product owner.
Donald Isufi - FrontEnd Developer, BSc in Electrical and Electronics Engineering, 2+ years experience in React, Next.js, Typescript, Redux, and Tailwind CSS. With a key active role at the “littlefish Foundation”, I've contributed to Cardano blockchain projects and spearheaded successful proposals (Fund 8: Coordinating Action). Additionally, I maintain a prolific writing record on “DAO Work” and Ocean Technologies while managing all technical aspects of the littlefish.
Linkedin: https://www.linkedin.com/in/donaldisufi/
GitHub: https://github.com/Nald97
Donald is the frontend engineer of the project. He will implement most of the project using javascript.
Emir Olgun - Physics major 1 year experience in Data Analysis, 2 year experience in market research project management, 1 year experience in Cardano smart contract development. Physics major, Selt-taught programmer, JavaScript, Python. Completed Gimbalabs Plutus Project-Based Learning Summer 2022, followed Plutus Pioneers Program. Currently managing Littlefish Fund 9 proposals of Ocean Technologies and Tools of DAO Work.
https://www.linkedin.com/in/emir-olgun-404048234/
Emir is the blockchain expert on the team. His role is to implement the parts of the project concerning blockchain.