Leaderboard
Returns the epoch cumulative points leaderboard: the top 100 users of the current active epoch by total points, computed live from points.balances on every request (there is no cache).
GET /v1/points/leaderboard
No authentication required.
Query Parameters
None. The epoch is always the current active epoch, the ranking is always total (sum of all five point types), and the result is capped at 100 entries. epoch, type_ and limit parameters are not implemented and are ignored.
Response
{
"epoch_number": 3,
"rank_type": "total",
"entries": [
{
"rank": 1,
"user_address": null,
"username": null,
"points": "125680.50",
"tier": "T3"
},
{
"rank": 2,
"user_address": null,
"username": null,
"points": "98450.20",
"tier": "T2"
}
],
"total": 1842,
"updated_at": "2026-04-15T12:00:00Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
epoch_number | int | Current active epoch (falls back to 1 if none is active) |
rank_type | string | Always "total" |
entries | array | Ranked entries (at most 100) |
total | int | Number of users with a balance row in the epoch (not capped at 100) |
updated_at | string | Time the response was generated (ISO 8601) — the board is computed live |
entries[]
| Field | Type | Description |
|---|---|---|
rank | int | Rank position (1-based, by total points descending) |
user_address | string | null | Address stored on the balance row; the accrual pipeline does not populate it yet, so currently null |
username | null | Reserved; currently always null |
points | Decimal | Total points (all five types summed, 2 decimals) |
tier | string | User's tier (T1 / T2 / T3), derived from the epoch trading_volume |
Code Examples
Python
import requests
BASE_URL = "https://api.rocky.exchange"
resp = requests.get(f"{BASE_URL}/v1/points/leaderboard")
data = resp.json()
print(f"Top {len(data['entries'])} of {data['total']} users (Epoch {data['epoch_number']})")
for e in data["entries"]:
name = e["username"] or e["user_address"] or "-"
print(f" #{e['rank']} {name}: {e['points']} pts [{e['tier']}]")