CERTIGUARD

CERTIGUARD

Ensuring Safety of your Certificates while making it easy to Issue them

CERTIGUARD

CERTIGUARD

Ensuring Safety of your Certificates while making it easy to Issue them


The problem CERTIGUARD solves

The blockchain-based certificate issuing and verification system using IPFS and Solana PDAs offers several practical applications and benefits:

Education and Credentials: Educational institutions can issue digital diplomas and transcripts, making it easy for graduates to prove their qualifications. Employers and academic institutions can efficiently verify credentials.

Professional Certification: Professional bodies and organizations can use the system to issue digital certifications for various industries. This streamlines the certification process and ensures the authenticity of qualifications.

Corporate Training: Companies can issue digital certificates to employees who complete training programs. These certificates can be quickly validated during the hiring process or audits.

Efficient Verification Services: Third-party verification services can access the Solana blockchain to provide quick and cost-effective certificate verification. This can be especially valuable for HR departments, educational institutions, and recruitment agencies.

Reduced Administrative Burden: Educational institutions and organizations can ***automate the certificate issuance ***process through smart contracts. This reduces administrative overhead and ensures compliance with predefined rules.

Challenges we ran into

Stuck at initializing PDA:
First time initializing Dynamic PDA's where the User account is not variable, rather the other seed is.
Didnt know how to pass the Certificate ID as the seed

Solved by calling it as a

#[instruction(_id:u32)]

and passing it as a lower endian byte array using the

to_le_bytes()

method

Verifying the Issuer key:
Didnt know how to check the whether the issuer is a valid or not on-chain.

Solved by passing a Vec of publickeys as a parameter to the smartcontract and performing lookups using

if !_access_control.contains(&ctx.accounts.issuer.key)

Switching Decentralized Storage:
Planned to use Arweave for the storage of images, shifted to Bundlr due to lack of Arweave tokens.
Implementing Bundlr SDK was hectic so we decided to go with an easy onbaording IPFS that we were familiar with, called ZDFS by Zeeve.

Chakra UI:
Understanding how to build NextJS apps using Chakra UI was time consuming , but beneficial as the UI looks great.

Tracks Applied (2)

Filecoin

Storing the images in IPFS so that the certificates can be displayed when needed and the file id can be used as a differ...Read More

Filecoin

Solana

Using the Solana Blockchains PDA to store and lookup certificate data. Solana is very fast and hence this process is sea...Read More

Solana

Discussion