Appearance
Leaderboard
Each point system has a leaderboard that can be queried directly from the SDK.
Get leaderboard
Get the leaderboard using the getLeaderboard
method. The object returned contains the leaderboard, metadata, and stats. The response defaults to the top 100 users, and you can specify the limit and offset to paginate through the leaderboard. Stats includes the total number of users in the leaderboard.
typescript
await stack.getLeaderboard();
// =>{
// leaderboard: [
// {
// address: '0x28B4DE9c45AF6cb1A5a46c19909108f2BB74a2BE',
// points: 25,
// identities: [Object]
// },
// {
// address: '0x4d0c5acFb9C448Cb5dd869d9E6e5697Aa2a12Ec5',
// points: 25,
// identities: [Object]
// },
// {
// address: '0x302aE9D5BDD8f5125b1182cdd966Ff4eEd3E3aCF',
// points: 15,
// identities: [Object]
// },
// metadata: {
// label: '',
// name: '',
// description: '',
// bannerUrl: '',
// primaryColor: '#e64747',
// createdAt: '2024-05-08T18:33:38.818Z',
// url: 'https://stack.so/leaderboard/leaderboard-40a3-782251'
// },
// stats: { total: 14 },
//}
Parameters
query
: (Optional) LeaderboardQuery object
Returns
leaderboard
address
: The Ethereum address of the user.points
: The total points of the user.identities
: The identities associated with the user, e.g. Farcaster, Lens, ENS.
metadata
label
: The label of the leaderboard.name
: The name of the leaderboard.description
: The description of the leaderboard.bannerUrl
: The URL of the banner image for the leaderboard.primaryColor
: The primary color of the leaderboard.createdAt
: The creation date of the leaderboard.url
: The URL of the leaderboard.
stats
total
: The total number of users in the point system (useful for pagination).
LeaderboardQuery
As of v0.4.0, LeaderboardQuery is an object that can be constructed in order to handle filters, limit, offset.
Filter by users
typescript
const query = stack.leaderboardQuery()
.where({
associatedAccount: {
in: [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
]
}
})
.build();
const leaderboard = await stack.getLeaderboard({query});
Get leaderboard rank
Get the rank of an account in the leaderboard using the getLeaderboardRank
method.
typescript
await stack.getLeaderboardRank("0x2eeb301387D6BDa23E02fa0c7463507c68b597B5");
// {
// address: '0x627306090abaB3A6e1400e9345bC60c78a8BEf57',
// rank: 1,
// points: 10
// }