Inspiration

Crypto and NFTs move on narratives and culture, but most tools ignore cultural context. Qloo’s Taste AI™ maps cross-domain affinities (music, film, fashion, venues, etc.) via an API, which is perfect for turning “vibes” into structured signals. We asked: what if you could trade the vibe before it trends? That led to Cultural Arbitrage — using Qloo’s cultural graph + an LLM to surface on-chain opportunities.

What it does

Type a vibe (e.g., “gothcore futurism” or “solarpunk”). The app:

  1. Expands the concept with an LLM into related entities (genres, artists, films).
  2. Queries Qloo to fetch correlated cultural entities across domains.
  3. Maps those entities to on-chain assets by checking OpenSea (NFT collections/items) and CoinGecko (tokens & market data), and scans Farcaster/Twitter for live mentions to gauge traction.
  4. Renders an interactive “taste map” + ranked signal cards with rationale, links, and (optional) a quick basket simulation.

This directly addresses the hackathon brief: integrate an LLM with Qloo’s API to connect behavior with cultural context.

How we built it

  • Frontend: React + shadcn/ui (Radix + Tailwind) with dark mode as the default for a clean, minimal look; theming via next-themes. Graph (D3/force-graph) and charts (Recharts/Plotly) sit inside shadcn cards/dialogs.
  • Backend: Node.js (TypeScript, Express/Fastify). Parallel async services:
    • gptService – prompt-engineered expansion & explanations (OpenAI/Claude).
    • qlooService – calls Qloo Taste AI for correlated entities.
    • openseaService – queries OpenSea V2 collections/NFTs & events.
    • coingeckoService – token search + prices/volume via CoinGecko.
    • socialService – Farcaster client API (or Neynar) for posts/engagement.
  • Pipeline: theme → LLM expand → Qloo correlate → asset scan → score/fuse → UI. We cache frequent queries and stream partial results to keep TTFB low.

Challenges we ran into

  • Semantic drift & LLM noise: Early prompts expanded into unrelated concepts; we moved to structured (JSON) outputs with examples and post-filters before calling downstream APIs.
  • Data stitching across APIs: Aligning Qloo entities to NFT collections (OpenSea V2) and tokens (CoinGecko) required fuzzy matching and confidence scoring; V2 endpoints improved latency and stability.
  • Social data access: Farcaster has multiple client/APIs; we used the Warpcast client API and explored Neynar for convenience and rate limits.
  • Time-to-demo vs. polish: Keeping the UI minimal yet expressive — shadcn’s dark-mode primitives sped this up.

Accomplishments that we're proud of

  • End-to-end “vibe → asset” loop that is explainable (cultural graph + rationale), not just a black-box signal.
  • Clean, dark, production-feel UX on shadcn/ui that judges can navigate in seconds.
  • Modern data stack wired to real APIs: Qloo Taste AI, OpenSea V2, CoinGecko, and Farcaster — all aligned with the hackathon’s integration criteria.

What we learned

  • Culture is a powerful organizing layer for discovery — Qloo’s cross-domain graph gives a unique signal surface that traditional price/TA tools miss.
  • API ergonomics matter: OpenSea V2 endpoints (collections, NFTs, events) reduced payload size and improved stability vs older APIs.
  • UX wins hackathons: A fast, minimal dark UI + obvious explanations beats complex dashboards; shadcn’s theming/docs made dark-mode implementation trivial.

What's next for Cultural Arbitrage Signal Engine

  • Alerts & watchlists: Subscribe to a vibe; get notified when new culturally-matched assets appear or cross momentum thresholds.
  • Creator (“scout”) marketplace: Let curators publish vibe portfolios/strategies (rev-share).
  • Deeper data: More on-chain signals; broader social ingestion; SIWF (Sign-In with Farcaster) for personalized feeds.
  • Monetization: Freemium SaaS + B2B data/API offering; long-term explore an on-chain “Taste Index” basket once coverage and backtests mature.
  • Production hardening: Rate-limit handling, Redis caching, and OpenSea API key management for scale.

Built With

+ 20 more
Share this project:

Updates