Neynar user score

Check for quality users using Neynar's user score

What is the Neynar user score?

Neynar user score is generated based on user behavior on the platform. It's scored between 0 and 1 and reflects the confidence in the user being a high-quality user. Users can improve their scores by having high-quality interactions with other good users. Scores update weekly.

If you want to see your score as a user, you can use the By username API, put in your username and turn the x-neynar-experimental flag to true.

📘

Scores are also available onchain, see Address <> user score contract

Interpreting the score

You can see a distribution of users across score ranges on this dashboard . A screenshot from Dec 5, 2024 is below

We recommend starting with a threshold around around 0.5 and then changing up or down as needed.

  • ~2.5k accounts with 0.9+ scores
  • ~27.5k accounts with 0.7+ scores

Developers should assess their own thresholds for their applications (Neynar does not determine thresholds in other apps). Restricting the score too high will only let very few accounts interact with your scores, see distribution above. Scores update at least once a week so it might take a few days for new users to show an updated score. If user has not been active in a while, their scores will reduce.

Getting the score on webhook events

If you're using Neynar webhooks to get data on your backend, you might want to separate high quality data from low quality data. A simple way to do this is to look at the neynar_user_score inside each user object.

user: {
	fid: 263530,
	object: "user",
	pfp_url: "https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/68c1cd39-bcd2-4f5e-e520-717cda264d00/original",
	profile: {
		bio: {
			text: "Web3 builder"
		}
	},
	username: "m00n620",
	power_badge: false,
	display_name: "tonywen.base.eth",
	experimental: {
		neynar_user_score: 0.9 // THIS IS THE SCORE
	},
	verifications: [
		"0xc34da1886584aa1807966c0e018709fafffed143"
	],
	follower_count: 29,
	custody_address: "0x22c1898bddb8e829a73ca6b53e2f61e7f02a6e6d",
	following_count: 101,
	verified_accounts: null,
	verified_addresses: {
		eth_addresses: [
			"0xc34da1886584aa1807966c0e018709fafffed143"
		],
		sol_addresses: []
	}
}

Fetching the score on API calls

If you're using APIs, you can get the same score as part of the user objects by passing in x-neynar-experimental boolean in the header. See screenshot below of User by FIDs for example.

Turning on this boolean flag will return the same score in the API or SDK response.

The same can be done when fetching users By Eth or Sol addresses. If looking to restrict activity on your contract to a specific cohort of users, you can run their address against this API to fetch their score and then allow them to take actions as appropriate.


Report errors

If you know a score is misrepresenting a user, that's helpful information we can use to label our data. Please send feedback to @rish on Warpcast DC or Telegram DM .