Ranking Strategies on Farcaster
Profile reputation scoring to address trustworthiness in social networks
Defining Ranking Strategies
We have implemented a set of strategies that can reveal high quality (highly ranked) profiles from the entire Farcaster network. These ranking strategies are based on following and engagement reputation graphs.
How are the Rankings performed?
We use Farcaster social graph data and use a linear combination of peer-to-peer actions such as Follows, Recasts, Mentions, Comments to calculate a personalized reputation graph for each user. This helps in figuring your own network or friends and friends of friends. We then apply EigenTrust on these graphs to generate a ranking of users.
Developers can change the algorithm weights and the rankings change real-time based on the updated parameters.
To see how this is done in our codebase, checkout the repo on our farcaster-graph
GitHub repo, specifically on these lines of code
Seeding the Rankings
For Ranking the entire set of Farcaster profiles (Global Ranking), we use a seed peer set of profiles. For Personalized Ranking, the seed peer is the profile(s) itself.
The Global Profile Ranking compute is seeded with a few profiles chosen as a starting point to begin the computation of transitive trust among profiles. This seed peer selection is upto the developers. But for simplicity, we have currently chosen a curated list of profiles using the Dune Farcaster Explorer dashboard. The seed peers are the influencers and VIPs retrieved via this query on Dune:
as a result, these are the sample of the seed users loaded into a pretrust
table (as seen in the db_schema.sql)
Strategy: following
This strategy emphasizes only on following
as peer-to-peer trust heuristics, disregarding all other actions such as likes
, replies
, recasts
and mentions
.
Weight Assignments: Follows = 1
You can see the weight assignments here in the code.
Strategy: engagement
This strategy emphasizes on engagement actions as peer-to-peer trust heuristics, by combining likes
, replies
, recasts
, mentions
and follows
. The more engagement a profile receives on their casts, the more they inherit trustworthiness from the source profile, but weighted by the trustworthiness or reputation of the source as well.
Therefore, if a set of sybil or spam clusters boost a particular profile (say Alice) and their casts, Alice's ranking will likely not increase because of the low rank of the profiles which are engaging with Alice.
Weight Assignments: Likes = 1, Replies = 6, Recasts = 3, Mentions = 12, Follows = 1
You can see the weight assignments here in the code. Developers can also change the weights in the algorithms.
Ranking Scope includes Global and Personalized, you can know more about them in their respective sections.
Tryout the APIs here! — https://graph.cast.k3l.io/docs#/
Last updated