CERTIFICATE GENERATION AND VALIDATION

Sometimes organisations face with issuing certificates or tickets for events they organize. However, the certificates or tickets can easily be forged as there are no authentication criteria also lack at producing these certificates or tickets as NFT . This application is a prototype for a certificate generator and validator with NFT support.

How The System Works?

The core technology for the validation is Blockchain. Each certificate is uploaded on a decentralized system IPFS and can easily be seen and accessed by anyone across the world by using a unique hash. Each certificate contains the participant's name and a unique hash. This hash and other metadata (name, IPFS unique hash) is stored onto the blockchain network. If a person wants to verify that the certificate is valid or an official certificate, the person can simply contact the organization and give them the unique hash, i.e., it is printed onto the certificate. The organisation, hence, matches the person's name and the hash onto their blockchain network and can easily verify whether the certificate is official or forged.

Accessing The Certificate

The certificate can be accessed using the link https://gateway.ipfs.io/ipfs/(your ipfs hash)

Technology's Used

  1. Blockchain
  2. IPFS
  3. *NFT *
  4. Computer Vision

BLOCKCHAIN used for validation purpose that verifies each certificate with a unique hash (tx_hash).

IPFS used to store and retrieve the certificate and certificates metadata, the main idea behind this is to decentralize the data.

COMPUTER VISON is used on automating the certificate generation, it creates the 'N' number of the certificate based on requirements.

Framework used

  1. IPFS & INFURA [https://github.com/ipfs-shipyard/py-ipfs-http-client]
  • IpfsApi client ( ipfs shipyard github repo)
  • NFTPORT ( mint and ipfs upload )
  • NFTSTOARGE ( metadata upload )

    Store the certificate data :

    api = ipfsApi.Client(host='https://ipfs.infura.io', port=5001)

    api.add(data)

    Retrieve via gateway url :

    https://gateway.ipfs.io/ipfs/(your ipfs hash)

API's used to store and retrieve the NFT data

**Mint NFT**:

NFT Storage:

  • api_response = api_instance.store(body, _check_return_type=False)
  • api_response = api_instance.status(cid, _check_return_type=False)
  1. OPENCV & PIL
  2. SQLITE DATABASE ( To save each ipfs_hash, tx_hash and name of the file )
  3. PANDAS
  4. STREAMLITE

Deployed URL

https://manidills-certificate-verification-main-5ewbc9.streamlitapp.com/

1.HOME ( STORE & RETRIVE FROM IPFS )

[xlsx file should follow the structure Name -> values, check test.xlsx from repo ] Organization should upload a xlsx file there that contains a list of names. Then you will get the dataframe that shows IPFS HASH, NAME and TX_HASH also with a download button to get certificates with participants names. (STORE DATA TO IPFS AND RETRIEVE ). It should be shared with participants via mail or drive.

2.CHECK (RETRIEVE IPFS )

If the participants or organization wants to valid or download the specific certificate, by entering the name || date to retrieve the certificate from IPFS and also if they wish to mint the certificate into NFT they can do it easily by one click (POLYGON MAINNET) and IPFS stored respose will be noted.

What's next for CERBLOCK

Next step is to scale the application and integrate real time BC like ethereum || polygon.

Built With

+ 85 more
Share this project:

Updates