Skip to main content
GET
Get Leaderboard

Overview

Retrieve the global leaderboard showing top-ranked users by their ZKScore. This endpoint supports filtering by category, chain, and time period, making it ideal for displaying competitive rankings and discovering top performers.
Use this endpoint to build leaderboards, showcase top users, and create competitive features in your application.

Parameters

number
Number of results to return (default: 50, max: 100)
number
Number of results to skip for pagination (default: 0)
string
Filter by specific scoring category
  • activity - Transaction activity leaders
  • volume - Highest volume traders
  • age - Oldest wallets
  • diversity - Most diverse users
  • governance - Top DAO participants
  • social - Highest social reputation
  • risk - Best risk management
  • loyalty - Most loyal users
  • total - Overall score (default)
number
Filter by specific chain ID (optional, defaults to all chains)
string
Time period for ranking
  • 24h - Last 24 hours
  • 7d - Last 7 days
  • 30d - Last 30 days (default)
  • all - All time

Response

boolean
Indicates if the request was successful
array
Array of top-ranked users
object

Examples

Response Example

Use Cases

1. Display Top Users

Show top 10 users in your app:

2. Category-Specific Leaderboards

Show leaders in different categories:

3. Paginated Leaderboard

Implement pagination for large leaderboards:

4. User Rank Lookup

Find a specific user’s position:
Track users with biggest rank improvements:

Best Practices

1. Cache Leaderboard Data

Leaderboards don’t change frequently:

2. Implement Infinite Scroll

Load more users as user scrolls:

3. Highlight Current User

Show user’s position in leaderboard:

4. Real-time Updates

Poll for leaderboard updates:

Visualization Examples

Leaderboard Table

Podium Display

Troubleshooting

”Invalid category”

Cause: Unsupported category value. Solution:
  • Use supported categories: activity, volume, age, diversity, governance, social, risk, loyalty, total
  • Check for typos

”Limit exceeds maximum”

Cause: Requested limit is too high. Solution:
  • Maximum limit is 100
  • Use pagination for larger datasets
  • Request multiple pages if needed

”Leaderboard temporarily unavailable”

Cause: Leaderboard is being recalculated. Solution:
  • Wait a few minutes and try again
  • Leaderboards are recalculated periodically
  • Use cached data if available

Performance Tips

  1. Cache Results: Leaderboards change slowly, cache for 5+ minutes
  2. Use Appropriate Limits: Don’t request more data than needed
  3. Implement Pagination: Load data in chunks for better UX
  4. Debounce Updates: Don’t poll too frequently (30s minimum)

Rate Limits

Leaderboard requests are subject to rate limits:
  • Free tier: 30 requests per minute
  • Starter tier: 150 requests per minute
  • Professional tier: 600 requests per minute
  • Enterprise tier: Custom limits
Implement caching to stay within limits.