A blockchain-based resume verification platform that makes credential verification instant, free, and trustworthy. Share your verified work experience via a public link in job applications.
What problem does this project solve?
Traditional resume verification is slow, expensive, and prone to fraud. Background checks can take weeks and cost $50-200 per verification. Resumes can be easily faked, and verification relies on trust-based systems with centralized data silos.
Stamp solves this by providing instant verification through blockchain-backed credentials, eliminating costs through decentralized storage on Solana, and ensuring cryptographic verification that cannot be faked. Recruiters can instantly verify credentials without contacting previous employers.
Example Flow:
- A user worked at Meta from 2022-2024
- The user requests verification through Stamp
- Meta's HR approves the request and mints a blockchain token to the user's wallet
- The user applies to Google and shares their public Stamp profile link
- Google's recruiter sees the blockchain-verified Meta credential instantly
Libraries and services we used
- Solana Blockchain - Using Solana's NFT standard via Metaplex to mint immutable credential tokens on-chain
- OpenRouter AI - Leveraging free AI models (moonshotai/kimi-k2:free) for intelligent PDF resume parsing that automatically extracts work experience
- Supabase - Integrated authentication and PostgreSQL database for user management and credential requests
- Next.js 14 App Router - Modern React framework with server-side rendering and API routes
- Metaplex SDK - Solana NFT creation and management for credential minting
- Auto-generated Wallets - Users don't need browser extensions; wallets are automatically generated and managed in-app
Extension types we built
This is a full-stack web application built as a Next.js application with public-facing landing pages, shareable credential profiles, user dashboard for requesting verifications, employer dashboard for approving/rejecting requests, RESTful API endpoints for authentication and blockchain operations, and middleware-based route protection with role-based access control.
- Node.js 18+ installed
- A Supabase account (free tier works)
- An OpenRouter account (for PDF parsing)
git clone <repository-url>
cd Stamp
npm install- Go to supabase.com and create an account
- Create a new project (takes approximately 2 minutes)
- Navigate to SQL Editor in your Supabase dashboard
- Run the database schema files in order:
- First: Copy and paste the contents of
SQL_SCHEMA.sqland execute - Then: Copy and paste the contents of
SQL_UPDATE.sqland execute
- First: Copy and paste the contents of
- Go to Project Settings → API and copy:
- Project URL
anonpublic keyservice_rolekey (click "Reveal" to see it)
For testing, create employer accounts:
- Go to Supabase Dashboard → Authentication → Users
- Click "Add User" and create accounts for test employers:
- Email:
hr@meta.com, Password: (choose a password) - Email:
hr@google.com, Password: (choose a password)
- Email:
- Copy the
auth_id(UUID) for each user - Go to SQL Editor and link them to employers:
UPDATE employers
SET auth_id = 'paste-auth-id-here'
WHERE email = 'hr@meta.com';- Go to openrouter.ai and create an account
- Navigate to the Keys section: https://openrouter.ai/keys
- Create a new API key
- Note: PDF parsing uses OpenRouter's free model
moonshotai/kimi-k2:freeby default
Create a .env.local file in the root directory:
# Supabase Configuration (REQUIRED)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url_here
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here
# Solana Configuration (REQUIRED for minting tokens)
NEXT_PUBLIC_SOLANA_NETWORK=devnet
NEXT_PUBLIC_SOLANA_RPC_URL=https://api.devnet.solana.com
# Issuer Wallet Private Key (REQUIRED for minting tokens)
ISSUER_PRIVATE_KEY=UZCwNMAViGRdpC/qDSPgKdevKgUBuUs7pc7oCEdp22mzFTJeq3/fh4vEeXaH/cdsF1URZOat3n8sHE1BefOdbQ==
# OpenRouter API (REQUIRED for PDF parsing)
OPENROUTER_API_KEY=your_openrouter_api_key_hereSee ENV_TEMPLATE.txt for complete template.
npm run devVisit http://localhost:3000 in your browser.
Test as a User:
- Navigate to
/signupand create an account - Upload a resume PDF or manually enter work experience
- Submit a verification request for "Meta" or "Google"
- Note your username for the public profile
Test as an Employer:
- Log in with an employer email (e.g.,
hr@meta.com) - View pending verification requests
- Approve a request to mint a blockchain token
Test as a Recruiter:
- Visit
/stamp/[username](public, no login required) - View the approved, blockchain-verified credentials