ScholaChain is a decentralized certificate and diploma verification platform that uses Ethereum blockchain technology to provide tamper-proof, transparent, and instant verification of academic and professional certificates.
- 🔍 Certificate Fraud Prevention: Eliminates fake certificates through blockchain immutability
- ⚡ Instant Verification: Reduces verification time from days to seconds
- 🔒 Data Integrity: Ensures certificates cannot be altered after issuance
- 🌐 Global Accessibility: Provides decentralized verification without central authority
- 🏛️ Role-based Access Control: Ministry of Education as SUPER_ADMIN (for issuer roles assignment)
- 📜 Certificate Issuance: Authorized institutions can issue tamper-proof certificates
- 🔄 Revocation Management: Ability to revoke compromised certificates
- 📊 Transparent Audit Trail: Complete history of all certificate operations
- 🔍 Instant Verification: Verify certificate authenticity in seconds
- 📱 Easy Sharing: Share verifiable certificates with employers/universities
- 💼 Permanent Storage: Certificates stored permanently on blockchain and IPFS
- 🎯 Dual Verification: Certificate ID + Document Hash verification
- 🔗 Direct Blockchain Proof: Link to exact transaction on Etherscan
- 📄 Document Integrity: SHA256 hash comparison for tamper detection
- 🌐 No Registration Required: Public verification without accounts
The project is configured for deployment on the local blockchain node network with Hardhat and on the Sepolia test blockchain network. In this tutorial, we provide instructions for a real-world deployment on the Sepolia Ethereum test network with transaction recording on Etherscan.
Before you begin, ensure you have:
- Docker (installed and running)
- MetaMask browser extension
- Git
- Testnet ETH (for Sepolia deployment). You can get some on Alchemy Faucet or Google Faucet
The first things you need to do are cloning this repository and setting up the project environment files
git clone https://github.com/Mongetro/scholachain.gitGo to the project root directory:
cd scholachainCreate a .env file in the blockchain-smart-contracts directory :
cp ./blockchain-smart-contracts/.env.example ./blockchain-smart-contracts/.envOnce you have created the .env file, configure all environment variables according to the instructions included in the file.
PS :
Always in the project root directory:
cp ./backend/.env.example ./backend/.envOnce you have created the .env file, configure all environment variables according to the instructions included in the file.
PS :
4. Deployment of smart contracts and launch of the decentralized application (backend + frontend) using the Sepolia network
In the project root directory:
- Launch all services:
make sepoliaWait until all services are up and running. The decentralized application (dApp) will usually be available at http://localhost:5173/.
Remember that in the browser wallet, you must have the account whose private key you added to scholachain/blockchain-smart-contracts/.env. This account is registered as the Ministry of Education (SUPER_ADMIN) during deployment. You should have other accounts (with Sepolia Testnet ETH) which will be considered certificate issuing institutions.
- Stop all services:
Once you have launched the decentralized application and tested its features, you can stop all services with the following command :
make stop- Open the application in your browser at http://localhost:5173/
- Connect your wallet (MetaMask)
- Ensure you're on the correct network (Sepolia ...)
- Make sure you log in with the correct account (Ministry of Education (SUPER_ADMIN))
- Navigate to "Admin"
- Clic the Add Institution butont and fill the Register New Institution form
- Send data and confirm the blockchain transaction via your wallet (metamask)
- Make sure you log in with the correct account (an account registered as an issuer by the SUPER_ADMIN)
- Navigate to "Issue Certificate"
- Fill in details and upload the PDF certificate/diploma file
- Send data and confirm the blockchain transaction via your wallet (metamask)
- Navigate to " Verify Certificate"
- Enter the certificate ID and upload the certificate PDF file to verify
- Verify the Certificate via Verify Certificate button
Common Issues
Metamask Connection Issues
- Ensure you're on the correct network
- Reset account and clear cache in MetaMask (Settings > Advanced > Clear activity tab data)
Transaction Failures
- Check you have sufficient gas funds (Sepoli ETH) in the connected account
- Verify that all services are running and contracts are correctly deployed
ScholaChain : Built with ❤️ for more transparency and authenticity of diplomas and certificates! 🎉