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