Giter VIP home page Giter VIP logo

axioms's Introduction

๐Ÿ“œ Axioms

Axioms provides organizations a one-stop shop for certificate issuance and verification. Organizations are Safe Multi-Sig Wallets. Certificates are stored indefinitely on Arweave and user verification is done with zkProofs via Sismo Connect.

Live App - https://axioms-alpha.vercel.app/


Description

Axioms is a platform for organizations to create and issue certificates. It uses a variety of technologies, such as safe multi-signature wallets, zkProofs, and Arweave, to make the process simple, secure, and seamless.

One of the problems that Axioms solves is the lack of user verification in traditional certification systems. For example, at an online event, organizers might distribute certificates of attendance to participants. However, there is no way to verify that the participants are real without requesting their personal information. Axioms uses zkProofs to selectively disclose personal data where needed, while maintaining user privacy.

Another problem that Axioms solves is the issue of certificate storage. Traditional certificates can be lost or destroyed, but certificates stored on Arweave are permanent.

Currently, Axioms supports the issuance of Proof of Attendance/Participation (POAP) certificates, which are unique certificates that can be shared between multiple users such as Hackathon participant certificate or Event Attendance Certificate. However, the platform can be integrated with multiple certificate types, such as 1:1 unique certificates.

Axioms also provides tools to make the certification process easier. For example, you can upload an Excel file of all the participants in a hackathon and a certificate template, and Axioms will automatically issue certificates to all of the participants.


How it's Made ๐Ÿ› ๏ธ

Safe Multi-Signature Wallets

The backbone of Axioms is the safe multi-signature wallet. Organizations can create new organizations in the form of safe multi-sig wallets or import existing wallets. This ensures that all decisions related to certificate issuance are made by a group of people, rather than by a single individual.

Issuing Certificates

To issue a certificate, an organization needs to provide the addresses of the holders of the certificate. This can be done manually or by importing an Excel or CSV file. The Excel or CSV file can also include other information, such as the certificate holder's name, email address, and Twitter handle. This information will be embedded in the certificate's NFT attributes.

Organizations can also select different types of user verification. Currently, Axioms supports Twitter, GitHub, Lens profile, Gitcoin passport, ENS domains, and Proof of Humanity. This can be expanded in the future.

Once the organization has provided all of the necessary information, the certificate and associated data are uploaded to Arweave using Irys.

Deploying Certificate Contracts

Once all of the details are in place, any safe owner can propose to issue a new certificate contract. This contract is a soulbound NFT smart contract where the first layer of verification occurs through a Merkle tree whitelist. This ensures that only authorized holders can claim the certificates.

Once a threshold of signatures are done, any owner can execute the transaction and the contract is deployed.

Claiming Certificates

Once a contract is deployed, users can interact with the contract to claim their certificates. The claiming process is as follows:

Users visit the certification page. They generate and verify zkProofs using Sismo data vaults. Once the proofs are verified, the smart contract is called with the Merkle proofs for that address. Once all are verified, a soulbound token is issued to the user.


Screenshots ๐Ÿ“ธ


Homepage

Create Game

Game Page

Game Page

Game Page

Game Page

Video Demo ๐ŸŽฅ

Axioms

https://youtu.be/9rAgqT6YUqU


Tech Stack ๐Ÿ’ป


Getting Started ๐Ÿš€

๐Ÿ“ Smart Contract

To get started with Axiom smart contracts, follow these steps:

  1. Navigate to the contracts directory and locate the contracts under the contracts folder.
  2. Install the necessary dependencies by running the following command:
    pnpm install
    Set the required Environment Variables
  3. To run tests, you can run the following command
    npx hardhat test

๐Ÿ“ฑ Axiom Frontend

To get started with the Frontend app, follow these steps: Navigate to the app directory and install the necessary dependencies by running the following command:

pnpm install

Create a new file called .env.local in the root directory of the app. This file will contain the required environment variables. Inside the .env.local file, add the following environment variables:

NEXT_PUBLIC_THIRDWEB_CLIENT_ID=''
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID='your_wallet_connect_project_id'
NEXT_PUBLIC_ENV='development'
NEXT_PUBLIC_SISMO_APP_ID='your_sismo_app_id'

To obtain the thirdweb Client Id, you can visit the thirdweb Dashboard and retrieve the API key from there. For Sismo App Id we can get it from Sismo Dashboard.

Once you have filled in the environment variables in the .env.local file, you can start the development server by running the following command:

pnpm run dev

Open your web browser and navigate to http://localhost:3000 to access the Skybet app.

By following these steps, you will be able to set up and run the Axioms front-end app on your local development environment.


axioms's People

Contributors

envoy-vc avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.