Recommendations
Learn about the recommendation features for Profiles in Lens.
Lens Recommendations
Lens Profile recommendations are generated by leveraging a user's social graph and engagement data. Machine learning is employed to rank potential profiles to follow, based on the likelihood and quality of interaction.
List All
- React SDK
- JavaScript SDK
- API
The useRecommendedProfiles hook allows you to retrieve recommended Lens Profiles.
Available in @lens-protocol/react-web and @lens-protocol/react-native
import { useRecommendedProfiles, profileId } from '@lens-protocol/react-web';
export function RecommendedProfiles() { const { data, error, loading } = useRecommendedProfiles({ for: profileId('0x24'), });
if (loading) return <p>Loading...</p>;
if (error) return <p>Error: {error.message}</p>;
if (data.length === 0) return <p>No profiles found</p>;
return ( <ul> {data.map((profile) => ( <li key={profile.id}>{profile.handle?.fullHandle}</li> ))} </ul> );}
The hook yields a PaginatedReadResult<Profile[]>. For more information on pagination, refer to this guide.
Dismiss Recommendations
When you dismiss recommended Lens Profiles, they are removed from your suggestions, and the recommendation algorithm adjusts accordingly.
You must be authenticated with a Profile to dismiss recommendations. See Profile Login for more information.
- React SDK
- JavaScript SDK
- API
The useDismissRecommendedProfiles hook allows you to remove Lens Profiles from the list of recommended profiles.
Available in @lens-protocol/react-web and @lens-protocol/react-native
import { ProfileId, useDismissRecommendedProfiles} from '@lens-protocol/react-web';
export function DismissRecommendedProfiles({ profileIds }: { profileIds: ProfileId[] }) { const { execute, loading } = useDismissRecommendedProfiles();
if (loading) return <p>Dismissing profile recommendations...</p>;
return ( <button onClick={() => execute({ profileIds: profileIds })} disabled={loading}> Dismiss profile recommendations </button> );}
Peer Recommendations
The Peer Recommendations feature was designed to strengthen community ties through peer-to-peer vetting. Users can recommend or unrecommend peers, fostering a more interconnected and supportive network. It's primarily used for building customized features like favorite contacts and more. Read on to learn how to use it.
You must be authenticated with a Profile to use Peer Recommendations. See Profile Login for more information.
Recommend a Profile
If you encounter a Lens Profile that you believe is worth recommending, you can use the available SDK hooks, methods, or API mutations to recommend them. If you later decide otherwise, you can also unrecommend the Profile.
- React SDK
- JavaScript SDK
- API
You can use the useRecommendProfileToggle hook to recommend and unrecommend a Lens Profile.
Available in @lens-protocol/react-web and @lens-protocol/react-native
import { Profile, useRecommendProfileToggle } from '@lens-protocol/react-web';
function ProfileRecommendation({ profile }: { profile: Profile }) { const { execute: toggle, loading } = useRecommendProfileToggle();
return ( <button onClick={() => toggle({ profile })} disabled={loading}> {profile.peerToPeerRecommendedByMe ? `Remove recommendation` : `Recommend`} </button> );}
Recommendation Status
To determine if the active profile has recommended another profile, you can utilize the profile.peerToPeerRecommendedByMe property. This property is accessible in the Profile fragment of the SDKs and can be queried using the API, as shown in the example below. Note that this property will always return false if the current user is not authenticated.
That's it—you've now learned how to use the recommendation features, including how to retrieve, dismiss, and recommend profiles.