
A platform for issuing, verifying, and managing educational certificates as Soulbound Tokens (SBTs) on the blockchain.
SoulCertify is a decentralized application (dApp) built on Ethereum that revolutionizes how academic credentials are issued, managed, and verified. By leveraging blockchain technology and Soulbound Tokens (non-transferable NFTs), SoulCertify provides a secure, transparent, and tamper-proof system for educational institutions to issue digital certificates that can be easily verified by employers and other organizations.
- Soulbound Tokens (SBTs): Non-transferable tokens that represent academic achievements and credentials, ensuring authenticity and preventing fraud.
- Academic Credentials: Issue verifiable degrees, certificates, and qualifications that can be easily verified by employers and institutions.
- Verification System: Simple blockchain-based verification system that allows anyone to check the validity of certificates.
- Student Approval: Students must approve their certificates, ensuring accuracy and consent.
- Revocation Capability: Institutions can revoke certificates if necessary.
- Permanent Storage: Certificates are stored permanently on the blockchain, eliminating the risk of loss.
- Frontend: Next.js, TailwindCSS, RainbowKit, Framer Motion
- Smart Contracts: Solidity, Hardhat
- Blockchain Interaction: Wagmi, Viem
- Development: TypeScript, Yarn
Before you begin, you need to install the following tools:
-
Clone the repository:
git clone https://github.com/ojasarora77/soulcertify.git cd soulcertify
-
Install dependencies:
yarn install
-
Start the frontend application:
yarn start
-
Open your browser and navigate to:
http://localhost:3000
The project is organized as a Yarn monorepo with the following packages:
Contains the Solidity smart contracts and deployment scripts:
contracts/Certificate.sol
: The main contract for issuing and managing educational certificates as Soulbound Tokens.deploy/
: Contains deployment scripts for the smart contracts.test/
: Contains test files for the smart contracts.
Contains the frontend application:
app/
: Next.js app router pages and components.components/
: Reusable React components.hooks/
: Custom React hooks for blockchain interactions.public/
: Static assets.styles/
: Global CSS and styling.utils/
: Utility functions.
The main smart contract that handles the issuance and management of educational certificates as Soulbound Tokens.
issueCertificate
: Issues a new certificate to a student.approveCertificate
: Allows a student to approve their certificate.revokeCertificate
: Allows the contract owner to revoke a certificate.updateCertificate
: Updates the certificate data.getCertificate
: Retrieves the certificate data for a given token ID.getStudentCertificates
: Gets all certificates owned by a student.verifyCertificate
: Verifies if a certificate is valid and approved.
- Issue Certificate: An educational institution issues a certificate as a Soulbound Token.
- Student Approval: The student reviews and approves the certificate details.
- Blockchain Storage: The approved certificate is stored permanently on the blockchain.
- Verification: Employers or other institutions can verify the certificate's authenticity.
- The Certificate contract uses OpenZeppelin's Ownable for access control.
- Certificates are non-transferable (soulbound) to prevent unauthorized transfers.
- Students must approve their certificates, adding a layer of verification.
- Institutions can revoke certificates if necessary.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.