Farcaster Trending Topics Analysis

Hi, long time no talk!

Farcaster (my new favorite sufficiently decentralized social network) just launched Trending Topics in Warpcast, their first party client. Here’s what it looks for today:

A screenshot displaying trending topics on Warpcast, featuring 'Matcha', 'Coffee', and 'Tipping' along with engagement metrics.

This is pretty cool! Obviously my first thought is: How did they approach this problem, and what were the outcomes of the various approaches?

Our first hint to the answer to this is a post by dwr:

I started off by identifying a few approaches that I wanted to test:

Approaches

  1. Direct LLM integration: Send a bunch of casts + engagement metrics to an LLM, ask for trending topics. What I’m pretty sure Warpcast is doing.
  2. The good old stats approach: LDA topic modeling + k-means clustering
  3. Embedding based clustering: My new favorite approach for most problems, create embeddings for the casts and try to find the natural clusters that appear
  4. What I call “Topic Novelty Filtering”: Penalize common baseline topics any tech centric community will discuss, look for specific emerging trends. — I skipped this one because it was too boring to code.
  5. Way-overkill: Use two LLMs (a smaller and a bigger one) to make a Generator-Critic LLM approach like a GAN: Have the smaller model generate a big set of possible topics from a subset of the casts, have the larger model grade them on our criteria, move onto the next subset of the casts.

Full details of all of these approaches can be found in docs/ here: https://github.com/jc4p/fc-trending-topics/tree/main/docs

Preprocessing

Let’s dive in: First, I’m going to ignore all the data gathering parts because I simply used my Huggingface datasets: https://huggingface.co/datasets/jc4p/farcaster-casts and https://huggingface.co/datasets/jc4p/farcaster-reactions.

After that, there was a LOT of work regarding data preprocessing, filtering exact duplicate casts, filtering casts about specific coins or projects (It doesn’t seem fair to me to advertise new projects that can make someone money without them paying us to advertise them), if you’re interested in all that work it can be found here: https://github.com/jc4p/fc-trending-topics/blob/main/src/data_preprocessing.py

Results

All code for calculating these can be found here: https://github.com/jc4p/fc-trending-topics

All of these approaches only used the date range 4/13/2025 – 4/15/2025 since I wanted to have a direct comparison to the trends in Warpcast today.

Approach 1 (Direct LLM) Topics:

  1. Topic 1: $DEGEN Token Ecosystem & Tipping
  • Engagement: High
  • Est. percentage: ~15-20%
  • Why trending: High volume of posts involving $DEGEN token giveaways (“rain”), discussions about tipping culture (“…
  • Topic 2: Farcaster Mini App Ecosystem Growth
  • Engagement: High
  • Est. percentage: ~10-15%
  • Why trending: Significant discussion around building, launching, and using specific Mini Apps (formerly Frames), i…
  1. Topic 3: Base L2 Development & Optimism
  • Engagement: High
  • Est. percentage: ~8-12%
  • Why trending: Frequent, highly engaged posts discussing Base L2 features (e.g., 200ms blocktimes), specific applic…
  • Topic 4: Warpcast Rewards & Tipping Feature
  • Engagement: High
  • Est. percentage: ~7-10%
  • Why trending: Concentrated discussion, especially around Tuesday, regarding the Warpcast USDC rewards program and …
  • Topic 5: AI Agent Development & Integration
  • Engagement: Medium
  • Est. percentage: ~5-8%
  • Why trending: Growing conversation around specific AI agents (e.g., RecoupAI, Talent Mate, autonomous bots), their…

Approach 2 (LDA + K-Means) Topics:

  • Topic 1: Titles XYZ Leaderboard Ranking
  • Engagement: Medium
  • Est. percentage: 1.6%
  • Why trending: Users are actively participating in and discussing their ranks on the Titles XYZ leaderboard, a plat…
  • Topic 2: Farcaster Community Engagement and Tipping
  • Engagement: Medium
  • Est. percentage: 1.4%
  • Why trending: This topic focuses on the culture of support, appreciation, and engagement within the Farcaster comm…
  • Topic 3: General Social Media and Life
  • Engagement: Medium
  • Est. percentage: 97.0%
  • Why trending: A broad mix of posts covering daily life, personal updates, sharing photos, and general social media…

Approach 3 (Embeddings) Topics

  • Topic 1: Daily Greetings and Well Wishes
  • Sentiment: Positive
  • Why trending: A cluster of posts centered around sending greetings like “GM” (Good Morning) and wishing others a g…
  • Topic 2: The Leaderboard Ranking Game
  • Sentiment: Neutral
  • Why trending: Users are sharing and comparing their rankings on ‘The Leaderboard,’ likely a game or competition wi…
  • Topic 3: Airdrop Opportunities and Checkers
  • Sentiment: Neutral
  • Why trending: The cluster is focused on sharing and checking for various airdrop opportunities in the crypto space…
  • Topic 4: Everyday Life and Random Thoughts
  • Sentiment: Mixed
  • Why trending: This cluster captures a variety of personal updates, reflections, and observations on daily life, ra…
  • Topic 5: Farcaster Tipping and Appreciation
  • Sentiment: Positive
  • Why trending: Farcaster users are expressing gratitude and appreciation by tipping their favorite content creators…

Approach 4 (Generator-Critic) TOPICS

Topic 1: Warpcast Tip Culture
Explanation: Users frequently tip other casters, and the use of terms like “tip” and “rewards”, highlighting a strong culture of financial support and community recognition.
Estimated percentage: 7%
Engagement level: High
Key terms: tip, rewards, Warpcast

Topic 2: ITAP Photography
Explanation: The recurring use of the hashtag ‘ITAP’ (I took a picture) and ‘QC’ requests show a community dedicated to sharing and critiquing photographs.
Estimated percentage: 22%
Engagement level: High
Key terms: ITAP, QC, photo

Topic 3: Farville Trojan Horse
Explanation: Discussion around the /farville project and its approach to onboarding new users through ‘obsession’ rather than wallet tutorials.
Estimated percentage: 4.1%
Engagement level: Medium
Key terms: /farville, onboarding, obsession

Topic 4: Farcaster Storage Limits
Explanation: Users discussing Farcaster storage limits and the need to purchase more to continue posting.
Estimated percentage: 1.1%
Engagement level: Low
Key terms: storage, Farcaster, limits

Topic 5: On-Chain GM Rituals
Explanation: The ‘GM’ (Good Morning) trend, coupled with mentions of daily routines and specific platforms (like OnChainGM, Mode, and ZERO Network) showcases a community’s focus on consistent engagement and daily practices.
Estimated percentage: 11%
Engagement level: Medium
Key terms: GM, Web3 ritual

Initial Thoughts:

  1. Warpcast’s topics are much more high level than mine, but I think I prefer the granular more.
  2. Stuff like “Matcha” or “Coffee” is not in mine, tipping technically is but it’s more about “the tipping culture” than just tipping.
  3. The LDA one sucked! I really expected LDA to at least be in contention for top place, it’s the pure mathematics approach! Why did I learn Statistics if LLMs can do it better in one-shot!
  4. The more complicated the model –> the less universal the topics extracted.

Alternative approach: 1b: much simpler llm

Instead of sending a lot of complicated info to the LLM this time we decided to just send the raw text of each filtered cast to the LLM without any more context. To respect the context window we did this in batches of 15,000 posts, which generated a total of 20 topics. We then had another LLM rate these to find the most likely to increase engagement and have people think “Oh, I wanna see what people are talking about” when they see it in the Explore tab:

Topic 1: Tree Tuesday Nature Appreciation
Estimated percentage: 8%
Engagement level: Medium
Key terms: Tree, Tuesday, nature

Topic 2: Photo Sharing & Critique (ITAP)
Estimated percentage: 7%
Engagement level: Medium
Key terms: ITAP, photo, QC

Topic 3: Farcaster Tipping Culture
Estimated percentage: 12%
Engagement level: Medium
Key terms: tipping, Farcasters, community, support

Topic 4: Reflections & Gratitude Sharing
Estimated percentage: 6%
Engagement level: Medium
Key terms: gratitude, reflections

Topic 5: Degen Community Discussions
Estimated percentage: 7%
Engagement level: Medium
Key terms: Degen, community

Ideas For Next Steps:

  1. I’d love to try more manual AI approaches (reinforcement learning, full negative reinforcement learning, maybe a seq2seq)
  2. Take the best performing model, run it against all time periods we have data for, create a list of “common baseline topics” to ignore. We are currently doing a hardcoded version of this but it would be better to make it actual context specific using the real data.
  3. Zoom out a lot: Just try to focus on one word top level topics like Warpcast does (boooooring imo)

Question for you:

Which model’s outputs do you prefer the best? Hit the button below to message me on FC and let me know!

Appendix: LLM Prompt

Analyze the following Farcaster social media posts from the period: {date_range}.
These are samples from a dataset of {len(recent_df)} posts from this timeframe.
The actual number of posts provided in this prompt is {len(formatted_casts)}.

Your task is to identify the top 5 TRULY TRENDING topics of discussion with supporting evidence.

TRENDING topics have these characteristics:
- HIGH ENGAGEMENT: Topics with many likes and recasts
- RECENCY: Topics that are active in the most recent timeframe
- GROWTH: Topics that show increasing activity over time
- CONVERSATION: Topics that generate many replies and discussions

Generate your response based on the following TypedDict schema in Python:

class KeyTerm(TypedDict):
    term: str
    frequency: int  # Estimated frequency

class KeyEntity(TypedDict):
    name: str
    type: str  # Person, Project, Company, etc.
    relevance: str  # High, Medium, Low

class Topic(TypedDict):
    name: str  # 5 words max
    explanation: str  # Brief explanation of why trending
    estimated_percentage: str  # Percentage of posts
    key_terms: list[KeyTerm]
    key_entities: list[KeyEntity]
    engagement_level: str  # High, Medium, Low based on likes/recasts

class TrendingTopics(TypedDict):
    topics: list[Topic]
    analysis_period: str
    total_posts_analyzed: int  # MUST be accurate - set to the actual number of posts we provide (NOT 50 or 100)

CRITICAL REQUIREMENTS:
1. SPECIFIC TOPICS ONLY: No generic categories like "NFT Discussion", "Crypto News", or "Community Engagement". 
   Identify specific projects, protocols, products, features, or events (e.g., "BaseDAO Governance Proposal", "Farcaster Frames API", "Arbitrum Fraud Proofs")

2. ORGANIC TRENDING CONVERSATIONS: Find topics that are naturally gaining traction. If people are discussing a specific 
   token launch, name the specific token, not just "Token Launches"

3. RECENCY CRITICAL: The topic must show a clear pattern of INCREASING discussion in the most recent period

4. PRECISE NAMING: Topic names should accurately capture what is being discussed without being too generic

5. CONVERSATION METRICS: Pay special attention to posts that have generated active conversations. These posts have additional 
   metrics in this format: [🗨️X|👥Y|⏱️Z] where:
   - 🗨️X = Number of replies to the post
   - 👥Y = Number of unique users who replied
   - ⏱️Z = Duration of the conversation (m=minutes, h=hours, d=days)
   Posts with more replies and longer conversations often represent important trending topics

6. SUBSTANCE FOCUS: Prioritize substantive discussions around technology, product updates, ecosystem developments, market events,
   or important community announcements that show organic growth in community interest.

7. NO GENERIC TECH CATEGORIES: Never use generic labels like "AI Discussion" or "Blockchain Technology". Instead, identify the specific
   AI tool, blockchain project, or feature being discussed (e.g., "Scroll zkEVM Mainnet" not just "Layer 2 Rollups")

8. CONVERSATION-DRIVEN TRENDS: Give higher weight to posts that have generated significant conversation (many replies, many unique 
   repliers, or long conversations). These often indicate topics that the community is actively engaging with, not just passively consuming

POSTS:
{formatted_posts}

Discover more from Kasra Rahjerdi

Subscribe now to keep reading and get access to the full archive.

Continue reading