Trust layer for Web3. Verifiable professional identity backed by on-chain attestations.
ChainVolio is a verifiable professional identity platform built on Solana. It replaces unverifiable resumes and informal Web3 hiring (DMs, emails, PDFs) with cryptographically signed proof of work — attested by real organizations, anchored on-chain, and shareable with a single link.
The problem: Web3 hiring runs on unverifiable claims. Anyone can write anything. The solution: On-chain attestations. Signed by wallets. Locked forever.
"ChainVolio doesn't replace LinkedIn. It adds cryptographic proof to your existing presence — anywhere you already share your work." — Sandhy Warhol, Founder
Production: https://www.chainvolio.xyz
| What to explore | URL |
|---|---|
| Public talent directory | /explore-talent |
| Example public CV | /cv/[wallet-address] |
| Create a hiring collection | /hiring/create |
| Blog & guides | /blog |
- On-chain Proof of Work — Every contribution recorded with wallet signature
- Third-party Attestations — Organizations co-sign your work. Once attested, records are permanently locked. No one can alter or revoke them.
- CV Score — Algorithmic trust score based on attestation depth and history
- Public CV — One shareable link. Works in LinkedIn bio, Twitter/X, email, DM
- Upload evidence — Attach files, links, or documents to each proof entry
- Verified Credentials — Identity layer: Civic Pass, GitHub sync, on-chain activity
- Org Dashboard — Dedicated dashboard for verified organizations with hiring pipeline, endorsement stats, and org verification flow
- Hiring Collections — Create a shareable hiring link for a specific role with custom evaluation criteria (on-chain history, GitHub code, DAO governance)
- Immutable Snapshots — When a candidate applies, their full CV is snapshotted. The snapshot never changes even if the talent updates their profile later.
- Eligibility Filters — Require verified profiles only, active wallet, specific skills
- Org Attestation — Issue attestations to talent as a verified organization
- Explore Talent — Browse 36+ verified builders with CV scores and skill tags
- Ed25519 signatures via Solana for all critical actions
- Replay protection — Each signed action is valid only once within a time window
- Database-level immutability — Triggers prevent UPDATE/DELETE on attested records
- Row-Level Security (RLS) — Recruiters cannot see each other's data, enforced at DB
- Non-custodial — Private keys never touch the platform
- SPL Memo — Attestation hash anchored to Solana mainnet
Talent connects wallet (Phantom / Solflare)
↓
Adds Proof of Work entries (role, org, contribution, evidence)
↓
Requests attestation from collaborator or organization
↓
Attestor signs with wallet → SPL Memo anchored on Solana → record locked
↓
Talent shares one link → recruiters verify instantly, no calls needed
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router), TypeScript, Tailwind CSS, Framer Motion |
| Blockchain | Solana · SPL Memo Program · @solana/web3.js · @solana/wallet-adapter |
| Wallets | Phantom, Solflare (Wallet Standard) |
| Database | Supabase (PostgreSQL + RLS + Realtime) |
| Auth | Non-custodial wallet signature (Talent) · Supabase OAuth (Org) |
| Storage | Supabase Storage (avatars, proof documents) |
| Deployment | Vercel (Edge Runtime) |
| Signing | Ed25519 via TweetNaCl · bs58 encoding |
For full technical details, read PLATFORM_REPORT.md. For deployment instructions, read DEPLOYMENT_CHECKLIST.md.
Core security invariants:
- Attested records can never be modified or deleted (DB trigger enforcement)
- CV snapshots are immutable the moment a candidate applies to a hiring collection
- All permissions validated server-side — frontend can be compromised, DB cannot
- Replay attacks prevented via nonce + timestamp window per signed action
Prerequisites: Node.js 18+, npm, Phantom or Solflare browser extension
git clone https://github.com/sandhywarhol/chainvolio.git
cd chainvolio
npm install
cp .env.example .env.local # Fill in your Supabase and RPC credentials
npm run devOpen http://localhost:3000 and connect your Phantom or Solflare wallet.
Required environment variables (see .env.example):
NEXT_PUBLIC_SUPABASE_URL— Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY— Supabase anon public keySUPABASE_SERVICE_ROLE_KEY— Supabase service role (server-side only)NEXT_PUBLIC_SOLANA_RPC— Solana RPC endpoint (public, browser-facing)SOLANA_RPC— Solana RPC endpoint (private, server-side API routes)NEXT_PUBLIC_APP_URL— http://localhost:3000 for local devSKIP_SIG_VERIFY— Set totruefor local testing without wallet signing
chainvolio/
├── app/ # Next.js App Router pages and API routes
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks (useWalletConnect, etc.)
├── lib/ # Supabase client, auth, utilities
├── types/ # TypeScript type definitions
├── PLATFORM_REPORT.md # Full technical & security architecture
└── DEPLOYMENT_CHECKLIST.md # Production deployment guide
- Google OAuth for organizations — recruiter onboarding without wallet requirement
- Subscription model — fiat payments for org/recruiter tiers via Stripe
- Mobile-first experience — React Native or PWA
- API access — public API for third-party CV verification integrations
- Multi-chain — cross-chain attestation support
ChainVolio is built in public. Issues, feedback, and PRs are welcome. See CONTRIBUTING.md for guidelines. For security issues, see SECURITY.md.
MIT License — see LICENSE for details.
Built with ❤️ by @sandhywarhol and @Baraka Supported by Superteam Indonesia