Enrich creator profiles and onchain reputation by aggregating Talent Protocol, Guild.xyz, Basenames, Zora, and DeBank portfolio signals...
frontend/src/lib/reputation-aggregator.ts → getOnchainReputation(address)frontend/src/lib/reputation-aggregator.tsfrontend/src/lib/talent-api.ts → calls /api/social/talentfrontend/api/_handlers/social/_talent.ts (requires server env TALENT_API_KEY)frontend/src/lib/debank/client.ts → calls /api/debank/totalBalanceBatchfrontend/api/_handlers/debank/_totalBalanceBatch.ts (requires server env DEBANK_ACCESS_KEY)frontend/src/lib/guild-api.tsfrontend/src/lib/basename-api.tsfrontend/src/lib/zora-api.tsfrontend/src/lib/reputation-aggregator.ts first calls resolveCreatorAddress(...) (creator coin → creator address) before fetching sources.Never include secrets (API keys, private keys, full .env contents) in responses.
frontend/src/lib/reputation-aggregator.tsfrontend/src/lib/talent-api.tsfrontend/api/_handlers/social/_talent.tsfrontend/src/lib/guild-api.tsfrontend/src/lib/basename-api.tsfrontend/src/lib/zora-api.tsfrontend/src/components/cca/OnchainReputationCard.tsxfrontend/src/components/cca/CreatorProfileCard*.tsxfrontend/docs/onchain-reputation-system.md/api/social/talent (proxy keeps TALENT_API_KEY server-only).TALENT_API_KEY must be present in the server environment (Vercel / local env used by Vercel functions).DEBANK_ACCESS_KEY must be present in the server environment.{ success: true, data: null }).resolveCreatorAddress usage in frontend/src/lib/reputation-aggregator.tsgetTalentPassport, getTalentSocialsfetchDebankTotalBalanceBatch({ addresses: [...] })getBaseGuildStatsgetBasenameProfilegetZoraCreatorProfileCommon causes:
TALENT_API_KEY not set in server environmentWhere to fix:
frontend/api/_handlers/social/_talent.ts (proxy)frontend/src/lib/talent-api.ts (client uses /api/social/talent)Notes:
Cache-Control: public, s-maxage=120, stale-while-revalidate=300 to reduce rate-limit risk.Check:
frontend/src/lib/guild-api.ts uses a heuristic for “Base guild” membership (name includes “base” or guildId match).Check:
frontend/src/lib/basename-api.ts uses viem ENS methods on Base/Base Sepolia.Return a structured result: