Decentralized Digital Credential Issuance, Verification & Management Platform
Anchored on the Polygon Blockchain with SHA-256 Cryptographic Proofs, Gasless Relayers, and Cross-Platform Flutter Mobile Wallet.
- Overview
- System Architecture
- Key Features
- Monorepo Structure
- Smart Contract Details
- Tech Stack
- Getting Started (Local Development)
- Mobile App Setup
- Production Deployment
- License
Proofly solves the widespread problem of certificate fraud and paper-based credential verification. By anchoring verifiable credential fingerprints directly onto the Polygon Amoy Testnet through Solidity smart contracts, Proofly allows universities, enterprises, and certification bodies to issue tamper-proof certificates that anyone can verify instantly via web or mobile β without requiring users to own crypto or pay gas fees.
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββββββ
β Organization β ββββΊ β Express API β ββββΊ β Polygon Smart β
β (Issuer Web) β β & Relayer Svc β β Contract (Registry) β
βββββββββββββββββββ ββββββββββ¬βββββββββ ββββββββββββββββββββββββ
β
ββββββββββββ΄βββββββββββ
βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ
β Supabase β β AWS SES / S3 β
β Postgres DB β β Email & Storage β
ββββββββββββββββββββ ββββββββββ¬ββββββββββ
β
βΌ
ββββββββββββββββββββ
β Recipient β
β (Flutter App) β
ββββββββββ¬ββββββββββ
β
βΌ
ββββββββββββββββββββ
β Public Verifier β
β (Web / QR Scan) β
ββββββββββββββββββββ
- βοΈ On-Chain Proofs on Polygon: Every issued credential is authenticated with its unique SHA-256 hash directly on the
CertificateRegistrysmart contract. - β‘ Gasless Relayer Mechanism: Backend transaction sponsor ensures non-crypto users can issue and receive credentials with 0 gas fees.
- π Multi-Mode Instant Verification:
- Certificate ID / Hash Search: Live query against smart contract state.
- Drag & Drop PDF Verification: Instant client-side cryptographic hashing matches against blockchain registry in <100ms.
- Mobile QR Code Scanning: Camera-based cryptographic verification on the mobile app.
- π± Cross-Platform Mobile Wallet (Flutter):
- Offline certificate vault with AES-encrypted local storage.
- High-res PDF download and social sharing.
- Organization verification badges.
- π§ Automated Email Claim Flows: AWS SES-powered claim invitations delivering 1-click tokenized links to recipients.
- π Vector Certificate Generation Engine: Dynamic generation of high-quality PDF certificates with embedded QR codes and signatures.
Proofly/
βββ api/ # Vercel Serverless Function entry point
βββ apps/
β βββ mobile/ # Flutter cross-platform mobile app (Android/iOS)
β βββ lib/ # Dart source (Providers, Models, Screens, Widgets)
β βββ assets/ # App icons, vectors & branding
βββ packages/
β βββ contracts/ # Hardhat Solidity smart contracts & deployment scripts
β β βββ contracts/ # CertificateRegistry.sol
β βββ shared/ # Shared TypeScript schemas, DTOs & Zod validators
βββ services/
β βββ api/ # Express.js REST API & Web UI static portal
β βββ public/ # Light-themed Web application (HTML/CSS/JS/SVG)
β βββ src/
β βββ modules/ # Auth, Organizations, Certificates, Claims, Verification
β βββ services/ # Blockchain, S3, SES Email, PDF Generation
β βββ config/ # Environment, Supabase & Web3 configs
βββ infrastructure/ # Supabase PostgreSQL migrations & schemas
βββ assets/ # Architecture diagrams & documentation assets
βββ vercel.json # Vercel cloud deployment configuration
- Contract Name:
CertificateRegistry.sol - Network: Polygon Amoy Testnet (Chain ID: 80002)
- Contract Address:
0xfb960EB42729f84C48040eBe264b11473d926006 - Explorer: PolygonScan Amoy
| Layer | Technologies |
|---|---|
| Blockchain | Solidity 0.8.24, Hardhat, Ethers.js v6, Polygon Amoy |
| Backend API | Node.js 20, Express, TypeScript, Zod, JWT |
| Database & Auth | Supabase (PostgreSQL, Row-Level Security) |
| Cloud Services | AWS S3 (Storage), AWS SES (Transactional Email) |
| Frontend Web | HTML5, Vanilla CSS3, JavaScript (ES6+), SVG Vectors |
| Mobile App | Flutter 3.x, Dart, Provider / State Management |
| Hosting & CI/CD | Vercel (Serverless Functions & Global Edge CDN) |
- Node.js >= 20.x
- npm >= 10.x
- Flutter SDK >= 3.22.x
- Git
git clone https://github.com/atharvabaodhankar/Proofly.git
cd Proofly
npm installCopy .env.example to .env in the root directory (or in services/api/.env):
PORT=4000
NODE_ENV=development
API_BASE_URL=http://localhost:4000/api/v1
APP_URL=http://localhost:4000
JWT_SECRET=your_secret_jwt_key_here
# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Polygon Amoy
CHAIN_ID=80002
NETWORK_NAME=polygon-amoy
POLYGON_AMOY_RPC_URL=https://polygon-amoy.g.alchemy.com/v2/YOUR_KEY
CONTRACT_ADDRESS=0xfb960EB42729f84C48040eBe264b11473d926006
RELAYER_PRIVATE_KEY=your_wallet_private_key
# AWS S3 & SES
STORAGE_PROVIDER=s3
AWS_REGION=ap-south-1
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
AWS_S3_BUCKET=proofly-certificates
EMAIL_FROM=no-reply@yourdomain.com# Compile contracts and TypeScript packages
npm run build
# Start local API server and Web UI (http://localhost:4000)
npm run dev:apicd apps/mobile
# Fetch Flutter dependencies
flutter pub get
# Run on connected device / simulator
flutter run --dart-define=API_URL=http://localhost:4000/api/v1
# Build release APK
flutter build apk --release --dart-define=API_URL=https://proofly-api.vercel.app/api/v1The web app and API are pre-configured for 1-click deployment on Vercel:
- Simply connect this repository to Vercel.
- Add the production environment variables in the Vercel dashboard.
- Vercel automatically deploys the static UI and serverless Express API.
This project is licensed under the ISC License.
