summarize=true collapses a date range into one row per asset, which is exactly the shape a leaderboard needs.
- One value per asset: the
endDateday’s value, for every metric, whether it’sSUM,LASTorAVERAGE - Plus movement: a
<METRIC>_PCT_CHGseries showing how far that value moved sincestartDate - A comparison window, not a period total: Hyperliquid’s
PERP_VOLUMEover 2026-07-25 to 2026-08-01 summarizes to $2.02B, the 2026-08-01 value; the eight daily values sum to $59.64B
Lending, ranked by deposits
The Python version
<METRIC>_PCT_CHG series instead of skipping it. It’s (endDate / startDate − 1) × 100, measured across the whole window.
Perps, ranked by open interest
Twelve of the fourteen symbols rank on
OPEN_INTEREST. Extended and Gains Network report PERP_VOLUME ($176.9M and $16.3M) with no open interest over this window, arriving as a well-formed ["Extended", null] tuple, which is why leaderboard() guards against None as well as checking the type.
ApeX stands out: $792.6M of volume against $111.4M of open interest, turning its book over roughly seven times in a day. OI_BY_VOLUME_RATIO measures that directly. In this basket, Hyperliquid (5.04), Paradex (11.00), edgeX (3.71) and Lighter (1.71) return a value.
Build the symbol list automatically
Rather than hardcoding symbols, pull them from/asset/:
- 19 symbols, not 17: the sector query also returns
seam(Seamless Protocol) andsonne(Sonne Finance) - Keep the
or 0guard: neither reportsLENDING_DEPOSITSfor this window, so a built list still needs the same handling as a hand-picked one
