Search projects, hackathons, sponsors and tech

    ← All projects

    About

    The problem it solves **Reputation is scattered and slow.** Today we rate people and projects with Google Forms, Discord polls, and private spreadsheets. It’s hard to compare, easy to game, and rarely portable across communities. **Universal Rate** makes reputation collection **instant, privacy-preserving, and composable** on Farcaster—starting with builders, and designed as a **template-driven toolkit** so anyone can spin up a rating flow in minutes. ### What people can use it for * **Plug-and-play rater:** Hackathons, grants, contributor reviews, mentor matching, service providers, event feedback—any scenario where quick, comparable signal matters. * **Share to widen the funnel:** One-tap cast with results to boost discovery and collect more signal. * **Public receipts, zero heavy lift:** onchain proof on Base creates auditability without custody or complex infra. ### How it makes tasks easier/safer * **Parametric “Universal Rate” schema:** Categories, weights, and scales are configurable—ship a new rater without rebuilding UI or backend. * **Frictionless & private by default:** No doxxing or forced signups; MiniKit QuickAuth + client-only envs for basic use. * **Trustable signal:** Leaderboards, recent ratings, and unlockable community averages surface high-signal profiles over time. * **AI-ready (next):** Clean APIs and structured scores make it simple to plug into LLM agents—route bounties, surface experts, flag outliers, and focus resources where they matter most. ### This MVP (builder example) * **Flow:** rate → unlock → share → leaderboards. * **Proof:** optional Base tx per rating as a public receipt. * **Edge cases handled:** server-side address resolution for non-verified ETH; guidance + optional fee handling for onchain actions. Smart Contract Address(es) Contract (Base Sepolia): 0x4344712534c716E215bBa3491C99525e0d6f32a2 Other Onchain Proof - Emits Rated(rater, rated, category, score, commentHash, value, timestamp) as a public receipt. - In‑app “Publish Proof”: From the results screen, users can send recordRating via OnchainKit to append an immutable, verifiable event. - Key verification: Webhook verifies Farcaster Key Registry on Optimism when users add/remove the Mini App (proof of legitimate Mini App events). - Deploy tooling: Foundry project (backend) and docs (docs/deploy-on-base.md) to reproduce deployments and verify on Base/Basescan.

    How it's made

    Challenges we ran into - Next 15 App Router types: Route params now arrive as Promises; fixed invalid “GET” export types by awaiting context.params in API and dynamic routes. - Suspense with useSearchParams: Next requires useSearchParams() inside a Suspense boundary; wrapped /, /results, and /profile in <Suspense>. - ESLint “no-any” and Next rules: Replaced any with precise types, used Link instead of <a>, and added .eslintignore for Next-generated files. - Env var expansion: .env doesn’t expand $VAR; set literal values in Vercel envs and used a dynamic fallback to window.location.origin. - Farcaster manifest: Conflict between public/.well-known and App Router; replaced with a dynamic route app/.well-known/farcaster.json/route.ts and env-driven accountAssociation. - Sign-in nonce: sdk.actions.signIn requires a nonce; switched to quickAuth.getToken() which handles nonce internally. - Address resolution: Not all rated users have verified ETH addresses; added a server-side fallback (/api/address/[fid]) to resolve primary/any ETH or custody. - Foundry setup: Missing forge-std/OZ remappings and imports; added remappings, installed libs, and provided a clean deploy/verify workflow.