not approved

Open-source sign-in framework: Sign-in with wallet and/or CNFTs

₳55,172.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Feasibility
Value for money
Impact / Alignment
Solution

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.

Problem:

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.

Yes Votes:
₳ 9,068,380
No Votes:
₳ 121,265,743
Votes Cast:
152

[IMPACT] Please describe your proposed solution.

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:

  • sign-on/sign-in using a wallet address,
  • sign-on/sign-in using a specific NFT in the users wallet,
  • Callback URL for physical authorization. (Framework will allow external callback to trigger external API or any interface) (this will allow any external service to be informed of the action, such as logging authorizations and triggering external services such as automated garage doors or barriers.
  • allow certain NFTs/collections to be selected by the developer as login NFTs
  • Design and implement CNFT SSO metadata
  • Additionally, Membership levels (admin, user, etc.), activation date, expiry date, #max usage, transferability
  • Sample pages:
  • Dashboard
  • cnft_auth Setup and configuration
  • Privilege levels
  • Default NFT/collection selection
  • Signup with wallet
  • Search for NFT in a wallet (pattern, prefix, metadata)
  • Select NFT/collection in a wallet
  • NFT overlays
  • logo
  • any arbitrary number
  • a text or
  • any variable output
  • login with wallet
  • Actions and events specific authorization
  • Start date
  • Expiry date
  • Auth Levels
  • NFT Token session expiry duration
  • voting

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.

[IMPACT] How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

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.

[IMPACT] How do you intend to measure the success of your project?

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:

  • the number of stars on the repository,
  • the number of forks, clones, and traffic for an open source repository,
  • the number of feature requests.

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.

[IMPACT] Please describe your plans to share the outputs and results of your project?

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.

[CAPABILITY/ FEASIBILITY] What is your capability to deliver your project with high levels of trust and accountability?

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:

  • developing the framework,
  • promoting it on the right channels.

As a team we have extensive capabilities and expertise on building software, including JS:

  • building traditional backend services with Python, postgreSQL, Rest API development,
  • 20+ years of software development expertise with C++, C#, Python, PHP, JavaScript
  • frontend development with React JS, HTML, css,
  • 2+ years of AGILE project management expertise, with a senior project management expert of 10+ years experience,
  • Extensive experience with design tools such as Adobe Suite and Figma,
  • Plutus Pioneers Program graduate

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.

[CAPABILITY/ FEASIBILITY] What are the main goals for the project and how will you validate if your approach is feasible?

The goal of this project is to

  1. Provide a Cardano dApp boilerplate with NFT Authentication and explanatory documentation to start building on Cardano.
  2. provide a customizable solution for managing sign-ups and sign-ins through your wallet address or through CNFTs in your wallet
  3. have this base be used by other developers in their projects,
  4. and have it developed further by 5 other developers as an open source project.

Goals 1 and 2 will be easy to determine if we have reached it. Does the framework

  • allow the developer to read the user’s wallet for NFTs?
  • have secure authentication methods for wallet sign-on and NFT sign-on?
  • allow for customization? Can the developer
  • integrate these logins with their existing user management system easily?
  • select NFT collections or specific NFTs as the identifier for their login?

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.

[CAPABILITY/ FEASIBILITY] Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

Milestone 1 - Create boilerplate

Timeline: 1 month

  • develop the JS boilerplate code to launch simple dApps
  • develop callback mechanism for 3rd party backends to use

Milestone 2 - Sign up&in with wallet

Timeline: 1 month

  • develop functionality to sign up with a wallet
  • develop functionality to sign in with a wallet
  • develop frontend to implement the functionality
  • add functionality to callback mechanism

Milestone 3 - Sign up&in with an NFT

Timeline: 1.5 months

  • develop the functionality to sign up with an NFT
  • develop the functionality to sign in with an NFT
  • research and develop functionality to secure the authentication. ie. signing with the NFT, something only the NFT holder can do, to be verified in the backend
  • develop frontend to implement the functionality
  • add functionality to callback mechanism

Milestone 4 - SSO Metadata

Timeline: 1.5 months

  • Design and implement CNFT SSO metadata

  • Additionally, Membership levels (admin, user, etc.), activation date, expiry date, #max usage, transferability

  • develop frontend to implement the functionality

  • add functionality to callback mechanism

    [CAPABILITY/ FEASIBILITY] Please describe the deliverables, outputs and intended outcomes of each milestone.

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.

[RESOURCES & VALUE FOR MONEY] Please provide a detailed budget breakdown of the proposed work and resources.

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

[RESOURCES & VALUE FOR MONEY] Who is in the project team and what are their roles?

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/>

<https://github.com/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.

[RESOURCES & VALUE FOR MONEY] How does the cost of the project represent value for money for the Cardano ecosystem?

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.

Avis des conseillers communautaires (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3 min 24 s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4 min 59 s
    Darlington Kofa
0:00
/
~0:00