π Web3 Hackathon 2026 Submission by Team Sasta Engineers
Secure, transparent, and tamper-proof credential verification powered by blockchain technology.
Event: Web3 Hackathon 2026
Team: Sasta Engineers
Category: Blockchain Infrastructure & DApps
Repository: https://github.com/HackIndiaXYZ/web3-hackathon-2026-sasta-engineers
Educational credential fraud is a growing problem worldwide. Fake degrees, forged certificates, and tampered documents cost employers billions and undermine trust in educational systems. Traditional verification methods are slow, expensive, and vulnerable to manipulation.
ChainCred leverages blockchain technology to create an immutable, transparent, and instantly verifiable credential system. Educational institutions issue credentials directly on the Polygon blockchain, students receive tamper-proof certificates, and anyone can verify authenticity in seconds.
- Dual Authentication: Support for both traditional (email/password) and Web3 (wallet) authentication
- Async Blockchain Processing: Non-blocking credential issuance for better UX
- Multi-Layer Verification: Database + Blockchain cross-verification for maximum security
- QR Code Integration: Instant verification via mobile scanning
- Role-Based Dashboards: Tailored experiences for students, issuers, verifiers, and admins
ChainCred/
βββ app/
β βββ backend/ # NestJS API server (100% Complete)
β βββ frontend/ # Next.js web application (65% Complete)
β βββ contracts/ # Hardhat smart contracts (100% Complete)
βββ README.md
- Framework: NestJS 10 - Enterprise-grade Node.js framework
- Language: TypeScript 5 - Type-safe development
- Database: PostgreSQL 15 + Prisma ORM - Reliable data persistence
- Cache: Redis 7 - High-performance caching
- Blockchain: ethers.js 6 - Ethereum/Polygon interaction
- Storage: AWS S3 - Scalable file storage
- Authentication: JWT + Wallet Signature - Dual auth support
- Framework: Next.js 14 (App Router) - React framework with SSR
- Language: TypeScript 5 - Type-safe UI development
- Styling: Tailwind CSS 3 - Utility-first CSS
- UI Components: shadcn/ui - Accessible component library
- State Management: Zustand + React Query - Efficient state handling
- Blockchain: ethers.js 6 - Web3 wallet integration
- Language: Solidity 0.8.20 - Latest stable version
- Framework: Hardhat - Development environment
- Libraries: OpenZeppelin Contracts - Battle-tested security
- Network: Polygon Amoy (Testnet) / Mainnet - Low-cost, fast transactions
- Testing: 50+ test cases - Comprehensive coverage
- Dual authentication (Email/Password + Wallet)
- JWT with automatic refresh
- User management with RBAC
- Issuer registration & approval workflow
- Credential issuance with file upload
- Async blockchain processing
- Credential revocation
- Multi-method verification (File/ID/QR)
- Blockchain cross-verification
- Verification logging & analytics
- AWS S3 integration
- QR code generation
- Comprehensive error handling
- API documentation (Swagger)
- CredentialRegistry contract
- Role-based access control (Admin/Issuer)
- Credential issuance on-chain
- Credential revocation
- Batch operations (gas optimization)
- Emergency pause mechanism
- Event emission for transparency
- 50+ test cases
- Gas optimized (~$0.01 per credential)
- Landing page with features
- Responsive design
- API integration layer
- Wallet connection (MetaMask)
- State management setup
- Authentication pages
- Student dashboard
- Issuer dashboard
- Admin dashboard
- Verification page
- Node.js 18+ and npm 9+
- PostgreSQL 15+
- Redis 7+
- MetaMask browser extension
- Alchemy API key
- AWS account (for S3)
# Clone repository
git clone https://github.com/HackIndiaXYZ/web3-hackathon-2026-sasta-engineers.git
cd web3-hackathon-2026-sasta-engineers
# Backend setup
cd app/backend
npm install
cp .env.example .env
# Edit .env with your configuration
npm run prisma:generate
npm run prisma:migrate
npm run start:dev
# Frontend setup (in new terminal)
cd app/frontend
npm install
cp .env.example .env.local
# Edit .env.local with your configuration
npm run dev
# Smart contracts setup (in new terminal)
cd app/contracts
npm install
cp .env.example .env
# Edit .env with your configuration
npm run compile
npm test
npm run deploy:testnet# Start PostgreSQL and Redis
cd app
docker-compose up -d
# Then start backend and frontend as above- Institution registers as an issuer
- Admin reviews and approves application
- Institution can now issue credentials
- Institution uploads student credential (PDF)
- System computes SHA-256 hash
- Credential stored on blockchain (async)
- Student receives credential with QR code
- Verifier uploads credential file or scans QR
- System computes hash and checks database
- Cross-verifies with blockchain
- Returns verification result (VERIFIED/INVALID/REVOKED/TAMPERED)
- Total Lines of Code: 10,000+
- API Endpoints: 31
- Smart Contract Functions: 15+
- Test Cases: 50+
- Development Time: 2 weeks
- Team Size: Sasta Engineers
- Backend Completion: 100%
- Smart Contracts: 100%
- Frontend: 65%
- Overall: 88%
- β bcrypt password hashing (cost factor 12)
- β JWT with short expiration (15 min)
- β Automatic token refresh
- β Wallet signature verification (ECDSA)
- β Input validation & sanitization
- β SQL injection prevention (Prisma)
- β XSS prevention
- β CORS configuration
- β Rate limiting
- β Helmet security headers
- β File validation (PDF only, 10MB max)
- β S3 encryption at rest (AES-256)
- β Smart contract security (OpenZeppelin)
- β Reentrancy protection
- β Emergency pause mechanism
Note: Screenshots will be added before final submission
Interactive API documentation available at:
http://localhost:3001/api/v1/docs
Authentication
POST /api/v1/auth/register- Register userPOST /api/v1/auth/login- Login with email/passwordPOST /api/v1/auth/wallet-connect- Connect with wallet
Credentials
POST /api/v1/credentials/issue- Issue credentialPOST /api/v1/credentials/:id/revoke- Revoke credentialGET /api/v1/credentials/my-credentials- List my credentials
Verification
POST /api/v1/verify- Verify by file uploadGET /api/v1/verify/:id- Verify by ID (QR code)
# Backend tests
cd app/backend
npm test
# Smart contract tests
cd app/contracts
npm test
REPORT_GAS=true npm test # With gas reporting
# Frontend tests
cd app/frontend
npm testBuilt with β€οΈ for Web3 Hackathon 2026
We welcome contributions! See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see LICENSE file.
- NestJS - Backend framework
- Next.js - Frontend framework
- Hardhat - Smart contract development
- OpenZeppelin - Secure smart contracts
- Polygon - Blockchain network
- Alchemy - Blockchain infrastructure
- GitHub: https://github.com/HackIndiaXYZ/web3-hackathon-2026-sasta-engineers
- Team: Sasta Engineers
- Event: Web3 Hackathon 2026
π Made for Web3 Hackathon 2026 by Team Sasta Engineers
Revolutionizing credential verification with blockchain technology
- Framework: NestJS 10
- Language: TypeScript 5
- Database: PostgreSQL 15 + Prisma ORM
- Cache: Redis 7
- Blockchain: ethers.js 6
- Storage: AWS S3
- Authentication: JWT + Wallet Signature
- Framework: Next.js 14 (App Router)
- Language: TypeScript 5
- Styling: Tailwind CSS 3
- UI Components: shadcn/ui
- State Management: Zustand + React Query
- Blockchain: ethers.js 6
- Language: Solidity 0.8.20
- Framework: Hardhat
- Libraries: OpenZeppelin Contracts
- Network: Polygon (Amoy Testnet / Mainnet)
- Node.js 18+ and npm 9+
- PostgreSQL 15+
- Redis 7+
- MetaMask browser extension
- Alchemy API key (for blockchain RPC)
- AWS account (for S3 storage)
git clone https://github.com/HackIndiaXYZ/web3-hackathon-2026-sasta-engineers.git
cd web3-hackathon-2026-sasta-engineerscd app/backend
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env with your configuration
# Run database migrations
npm run prisma:generate
npm run prisma:migrate
# Start development server
npm run start:devBackend will run on http://localhost:3001
cd app/frontend
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# Start development server
npm run devFrontend will run on http://localhost:3000
cd app/contracts
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env with your configuration
# Compile contracts
npm run compile
# Run tests
npm test
# Deploy to testnet
npm run deploy:testnet# Start PostgreSQL and Redis
cd app
docker-compose up -d
# Backend and frontend can be started as above# Application
NODE_ENV=development
PORT=3001
API_PREFIX=api/v1
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/chaincred
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
# JWT
JWT_SECRET=your-secret-key
JWT_EXPIRES_IN=15m
JWT_REFRESH_SECRET=your-refresh-secret
JWT_REFRESH_EXPIRES_IN=7d
# Blockchain
ALCHEMY_API_KEY=your-alchemy-key
ALCHEMY_RPC_URL=https://polygon-amoy.g.alchemy.com/v2/your-key
CHAIN_ID=80002
CONTRACT_ADDRESS=0x...
PRIVATE_KEY=your-private-key
# AWS S3
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_REGION=us-east-1
S3_BUCKET_NAME=your-bucketNEXT_PUBLIC_API_URL=http://localhost:3001/api/v1
NEXT_PUBLIC_CHAIN_ID=80002
NEXT_PUBLIC_CONTRACT_ADDRESS=0x...
NEXT_PUBLIC_RPC_URL=https://polygon-amoy.g.alchemy.com/v2/your-keyOnce the backend is running, access the interactive API documentation:
http://localhost:3001/api/v1/docs
- Register an account (email/password or wallet)
- Receive credentials from verified institutions
- Download certificates with QR codes
- Share credentials for verification
- Register as an issuer
- Wait for admin approval
- Issue credentials to students
- Manage issued credentials
- Revoke credentials if needed
- Upload credential file or scan QR code
- Instant verification result
- View credential details
- Check blockchain verification
- Review and approve issuer applications
- Manage users and issuers
- Monitor platform statistics
- Handle platform operations
cd app/backend
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:cov # Coverage reportcd app/contracts
npm test # Run all tests
npm run test:coverage # Coverage report
REPORT_GAS=true npm test # Gas reportingcd app/frontend
npm test # Run all tests
npm run test:watch # Watch mode- Create a new project
- Connect your GitHub repository
- Set environment variables
- Deploy
cd app/frontend
vercelcd app/contracts
# Deploy to testnet
npm run deploy:testnet
# Deploy to mainnet (after audit)
npm run deploy:mainnet
# Verify on PolygonScan
npx hardhat verify --network amoy <CONTRACT_ADDRESS>- All passwords are hashed with bcrypt (cost factor 12)
- JWT tokens with short expiration (15 minutes)
- Automatic token refresh mechanism
- Wallet signature verification
- Input validation and sanitization
- SQL injection prevention (Prisma ORM)
- XSS prevention
- CORS configuration
- Rate limiting
- Helmet security headers
- β Backend API (100% Complete)
- β Smart Contracts (100% Complete)
- π Frontend (65% Complete)
- β³ Testing (In Progress)
- β³ Deployment (Pending)
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
Built with β€οΈ for Web3 Hackathon 2026
- NestJS - Backend framework
- Next.js - Frontend framework
- Hardhat - Smart contract development
- OpenZeppelin - Secure smart contract libraries
- Polygon - Blockchain network
- Alchemy - Blockchain infrastructure
Hackathon Submission: Web3 Hackathon 2026
Team: Sasta Engineers
Repository: https://github.com/HackIndiaXYZ/web3-hackathon-2026-sasta-engineers
For questions about this submission, please open an issue on GitHub.
Made for Web3 Hackathon 2026 by Team Sasta Engineers π


