Certificates on-chain. Forgery off the table.
CredChain eliminates academic credential fraud by anchoring digitally-signed certificates to the Ethereum blockchain — making every qualification instantly verifiable by anyone, anywhere, without contacting the issuing institution.
The Story
The Problem
Academic credential fraud costs institutions and employers billions annually. Fake degrees are indistinguishable from real ones to a non-specialist. Verification requires contacting the issuing institution — a slow, manual process that often gets skipped. The result: fraudulent qualifications enter the workforce every year.
Why It Matters
Trust in credentials is the foundation of education's value. When a medical school degree can be forged, patient safety is at risk. When an engineering certificate can be faked, infrastructure fails. CredChain makes credential trust a technical guarantee, not a social assumption.
The Solution
Institutions issue credentials as on-chain NFTs on Ethereum, digitally signed with the institution's private key. The certificate hash is stored in a Solidity smart contract. Anyone can verify a credential by connecting MetaMask and querying the contract — no institution contact required, no possibility of tampering.
Product Features
Each certificate is hashed and recorded in a Solidity smart contract on Ethereum. The hash is immutable — any alteration to the certificate invalidates the on-chain record immediately.
Employers and verifiers connect MetaMask, paste the credential ID or scan the QR code, and get an instant cryptographic verification — valid/invalid with issuer signature details.
Every credential carries the institution's ECDSA signature alongside the on-chain hash. Verification checks both — ensuring the credential was issued by the claimed institution.
Students have a personal credential wallet — all their verified certificates in one place, shareable via link or QR code for instant employer verification.
System Architecture
Technical Deep Dive
The CredChain contract maintains a mapping from credentialId to CredentialRecord (issuer address, recipient address, metadata hash, timestamp, revoked flag). Issuance emits an event — queryable by any off-chain indexer. Revocation sets the revoked flag — verification checks this before returning a valid status. The contract is upgradeable via a proxy pattern to allow bug fixes without losing historical records.
struct CredentialRecord {
address issuer;
address recipient;
bytes32 metadataHash;
uint256 issuedAt;
bool revoked;
}
mapping(bytes32 => CredentialRecord) public credentials;
function issue(bytes32 id, address recipient, bytes32 hash) external onlyIssuer {
credentials[id] = CredentialRecord(msg.sender, recipient, hash, block.timestamp, false);
emit CredentialIssued(id, msg.sender, recipient);
}
function verify(bytes32 id) external view returns (bool valid, CredentialRecord memory record) {
record = credentials[id];
valid = record.issuer != address(0) && !record.revoked;
}Storing full credential data on-chain is expensive. CredChain stores only the SHA-256 hash of the credential metadata on-chain. The full metadata (name, degree, grade, date) is stored off-chain in Supabase. Verification downloads the off-chain metadata, recomputes the hash, and compares it to the on-chain record — if they match, the credential is authentic and unaltered.
Engineering Decisions
Performance & Scale
Deployment & Infrastructure
Deployment
Solidity contract deployed on Ethereum Sepolia testnet via Hardhat. Next.js frontend on Vercel. Credential metadata in Supabase PostgreSQL.
CI/CD
GitHub Actions — Hardhat contract tests + TypeScript check on PR. Auto-deploy frontend on merge.
Monitoring
Etherscan for on-chain transaction monitoring. Supabase dashboard for off-chain data.
Challenges & Failures
What I Learned
Blockchain is the right tool when you need immutable, trustless audit trails — credential verification is a perfect use case.
Never store large data on-chain — hash it and store the data off-chain. The cryptographic guarantee is equivalent at 1/100th the cost.
Smart contract upgradability via proxy patterns is essential — bugs happen, and you can't redeploy a contract without losing history.
Future Roadmap
v2.0 — 2026
Screenshots
One-click credential verification via MetaMask
Student credential wallet with shareable links
Technology Stack
Smart Contract
Dev Toolchain
Blockchain
Wallet
Web3 Library
Frontend
Off-chain Storage
Ready to dive in?