Prove Your Reputation. Unlock Your Access.
FairGate is a production-ready reputation gateway built for the Solana ecosystem. It leverages FairScale's infrastructure to analyze on-chain activity and social presence, generating a verifiable "FairScore" that grants users access to tiered content, communities, and alpha.
| Main App | superteam-fairgate.vercel.app |
| Wallet-free Demo | superteam-fairgate.vercel.app/demo |
| Repo | github.com/fffwaves/superteam-fairgate |
🎯 For judges: Go to /demo to explore the full dashboard UI — no wallet needed. Use the tier switcher to preview Bronze / Silver / Gold / Platinum experiences. The Quick Tour panel (~2 min) walks you through all 6 FairScale integration points, the API response viewer, and gated content tiers.
- Instant Reputation Scoring — Connect your wallet for an immediate FairScore (0–100) pulled from the FairScale API.
- Tiered Access Control — Content is dynamically gated: Bronze → Silver → Gold → Platinum unlocks progressively more alpha.
- Score Breakdown Panel — Animated progress bars visualizing
fairscore_base(on-chain) vssocial_scoresplit. - Proof of Action Badges — Diamond Hands, DeFi Native, Early Adopter, LST Staker — earned from real on-chain behavior.
- Wallet Activity Stats — Transaction count, active days, wallet age, and percentile breakdowns.
- Share Your Score — One-click Twitter intent to flex your FairScore to your network.
- Score Refresh Button — Re-fetch your latest score at any time without disconnecting.
- Demo Mode — Full dashboard walkthrough at
/demowith tier switcher, no wallet required. - Responsive & Dark-First UI — Polished, mobile-friendly design with Framer Motion animations.
FairGate integrates the FairScale API server-side to protect the API key and prevent client-side manipulation.
User wallet → /api/score (Next.js route handler) → FairScale API → parsed response → UI
Key integration details:
- API called with
fairkey: <API_KEY>header — key never exposed to the browser - Full response mapping:
fairscore,fairscore_base,social_score,tier,badges[],features{} - 1-hour cache (
Cache-Control: s-maxage=3600) for performance - Mock data fallback when
FAIRSCALE_API_KEYis not set — judges can run locally without a key - Score refresh forces cache bypass via
?t=<timestamp>query param - Typed with
FairScaleResponseTypeScript interface for type safety
API Route: /app/api/score/route.ts
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Styling | Tailwind CSS |
| Animations | Framer Motion |
| Blockchain | @solana/web3.js + @solana/wallet-adapter |
| Wallets | Phantom, Solflare, Coinbase Wallet, Backpack + all Wallet Standard |
| Icons | Lucide React |
| Deployment | Vercel (Edge-compatible) |
-
Clone the repository
git clone https://github.com/fffwaves/superteam-fairgate.git cd superteam-fairgate -
Install dependencies
npm install
-
Configure Environment (optional — mock data works without a key)
# .env.local FAIRSCALE_API_KEY=your_fairscale_api_key -
Run Development Server
npm run dev # Open http://localhost:3000
Without
FAIRSCALE_API_KEY, the app uses realistic mock data so you can explore the full UI locally.
app/
page.tsx # Landing page — hero, tiers, how it works, FAQ
dashboard/ # Live dashboard (requires wallet connection)
demo/ # Walletless demo with tier switcher
api/score/ # FairScale API proxy (server-side, key protected)
components/
ScoreReveal # Animated circular score gauge
TierCard # Tier badge + progression display
ScoreBreakdown # Animated base vs social score bars
BadgeGrid # Proof-of-action badges
StatsRow # Wallet activity stats (tx count, active days, etc.)
GatedContent # Tier-locked content sections
lib/
types.ts # FairScaleResponse TypeScript types
utils.ts # Tier color helpers, cn utility
MIT — see LICENSE for details.
Built for the Superteam Earn FairScale Bounty · Powered by FairScale · Deployed on Vercel
