vike
API EndpointsHyperliquid

/builders/stats

Builder-code economics for the whole venue — how many builders are active, how many distinct traders route through one, what share of all Hyperliquid fill notional carries a builder code.

GET https://data.vike.io/v1/hyperliquid/builders/stats

Builder-code economics for the whole venue — how many builders are active, how many distinct traders route through one, what share of all Hyperliquid fill notional carries a builder code, and how that moved day by day. lifetime.fee_usd is all-time and unwindowed.

Truncated: daily holds 31 buckets; the first 2 are shown. totals and lifetime are complete.

cURL
# venue-wide builder economics over 30 days
curl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=30d" \
  -H "X-API-KEY: $VIKE_API_KEY"

# the shortest window: the last day of fills
curl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=1d" \
  -H "X-API-KEY: $VIKE_API_KEY"

# the share of all fill notional that carries a builder code, per window
curl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=7d" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.totals | {builders, users, fee_usd, builder_routed_share_pct}'

# a day-by-day fee series for a chart
curl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=30d" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.daily | map({date, builders, fee_usd, volume_usd})'

# read the real coverage start from the data, never from prose
curl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=1d" \
  -H "X-API-KEY: $VIKE_API_KEY" \
  | jq '.lifetime'

# then rank the builders behind these totals
curl -s "https://data.vike.io/v1/hyperliquid/builders?window=30d&limit=10" \
  -H "X-API-KEY: $VIKE_API_KEY"
windowqueryoptional
1d | 7d | 30d | all. Default 30d
Example response
{
  "window": {
    "window": "30d",
    "start": "2026-08-04T08:06:47.379000+00:00",
    "end": "2026-09-03T08:06:47.379000+00:00"
  },
  "totals": {
    "fee_usd": 8905954.222539285,
    "volume_usd": 21384665654.34212,
    "share_volume_usd": 21384665654.34212,
    "fills": 21464158,
    "users": 175990,
    "revenue_per_user": 50.60488790578604,
    "fee_rate_bps": 4.1646450622579385,
    "fee_usd_node": 8905954.222539285,
    "trader_fee_usd": 15342433.846149018,
    "builder_routed_deployer_fee_usd": 276863.60111752996,
    "active_days": 31,
    "crossed_fills": 15039788,
    "taker_pct": 70.06931275850653,
    "first_seen": "2026-08-04T08:06:47.689000+00:00",
    "last_seen": "2026-09-03T08:06:47.379000+00:00",
    "builders": 773,
    "assets": 1189,
    "routed_closed_pnl_usd": 40440208.459194675,
    "venue_volume_usd": 502186586606.7108,
    "builder_routed_share_pct": 4.258310800142816,
    "market_share_window_start": "2026-08-04T08:06:47.379000+00:00"
  },
  "lifetime": {
    "fee_usd": 102158419.77212027,
    "first_seen": "2024-10-27T18:15:13+00:00",
    "last_seen": "2026-09-03T08:06:47.379000+00:00"
  },
  "daily": [
    {
      "date": "2026-09-03",
      "builders": 313,
      "assets": 416,
      "fee_usd": 68310.92594833038,
      "volume_usd": 189551581.736281,
      "share_volume_usd": 189551581.736281,
      "fills": 314223,
      "users": 14027,
      "revenue_per_user": 4.869959788146459,
      "fee_rate_bps": 3.6038172471369765,
      "fee_usd_node": 68310.92594833038,
      "trader_fee_usd": 119872.31359066741,
      "builder_routed_deployer_fee_usd": 3257.024262140485,
      "crossed_fills": 193620,
      "taker_pct": 61.618659359754055,
      "routed_closed_pnl_usd": -173991.42875996322
    },
    {
      "date": "2026-09-02",
      "builders": 426,
      "assets": 519,
      "fee_usd": 243552.30523937644,
      "volume_usd": 649788619.894209,
      "share_volume_usd": 649788619.894209,
      "fills": 960364,
      "users": 31046,
      "revenue_per_user": 7.8448851781027,
      "fee_rate_bps": 3.748177450061049,
      "fee_usd_node": 243552.30523937644,
      "trader_fee_usd": 436195.37178474676,
      "builder_routed_deployer_fee_usd": 15056.07115401947,
      "crossed_fills": 606377,
      "taker_pct": 63.14033012482767,
      "routed_closed_pnl_usd": -550294.1408118871
    }
  ]
}

stats is a reserved segment on this path

/builders/stats is always this route, never a /builders/{builder} lookup — a builder address is a hex string, so nothing is shadowed, but do not expect {builder} to accept the literal stats.

No coverage start date is quoted here, and none should be: builder history is imported from Hyperliquid's published per-builder fee CSVs and both the totals and the start move as that import proceeds. Read lifetime.first_seen for the actual coverage start — a coverage date quoted in prose here was measured 40% low and eight months stale within a day of being written.

cURL
# venue-wide builder economics over 30 dayscurl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=30d" \  -H "X-API-KEY: $VIKE_API_KEY"# the shortest window: the last day of fillscurl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=1d" \  -H "X-API-KEY: $VIKE_API_KEY"# the share of all fill notional that carries a builder code, per windowcurl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=7d" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.totals | {builders, users, fee_usd, builder_routed_share_pct}'# a day-by-day fee series for a chartcurl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=30d" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.daily | map({date, builders, fee_usd, volume_usd})'# read the real coverage start from the data, never from prosecurl -s "https://data.vike.io/v1/hyperliquid/builders/stats?window=1d" \  -H "X-API-KEY: $VIKE_API_KEY" \  | jq '.lifetime'# then rank the builders behind these totalscurl -s "https://data.vike.io/v1/hyperliquid/builders?window=30d&limit=10" \  -H "X-API-KEY: $VIKE_API_KEY"
Example response
{  "window": {    "window": "30d",    "start": "2026-08-04T08:06:47.379000+00:00",    "end": "2026-09-03T08:06:47.379000+00:00"  },  "totals": {    "fee_usd": 8905954.222539285,    "volume_usd": 21384665654.34212,    "share_volume_usd": 21384665654.34212,    "fills": 21464158,    "users": 175990,    "revenue_per_user": 50.60488790578604,    "fee_rate_bps": 4.1646450622579385,    "fee_usd_node": 8905954.222539285,    "trader_fee_usd": 15342433.846149018,    "builder_routed_deployer_fee_usd": 276863.60111752996,    "active_days": 31,    "crossed_fills": 15039788,    "taker_pct": 70.06931275850653,    "first_seen": "2026-08-04T08:06:47.689000+00:00",    "last_seen": "2026-09-03T08:06:47.379000+00:00",    "builders": 773,    "assets": 1189,    "routed_closed_pnl_usd": 40440208.459194675,    "venue_volume_usd": 502186586606.7108,    "builder_routed_share_pct": 4.258310800142816,    "market_share_window_start": "2026-08-04T08:06:47.379000+00:00"  },  "lifetime": {    "fee_usd": 102158419.77212027,    "first_seen": "2024-10-27T18:15:13+00:00",    "last_seen": "2026-09-03T08:06:47.379000+00:00"  },  "daily": [    {      "date": "2026-09-03",      "builders": 313,      "assets": 416,      "fee_usd": 68310.92594833038,      "volume_usd": 189551581.736281,      "share_volume_usd": 189551581.736281,      "fills": 314223,      "users": 14027,      "revenue_per_user": 4.869959788146459,      "fee_rate_bps": 3.6038172471369765,      "fee_usd_node": 68310.92594833038,      "trader_fee_usd": 119872.31359066741,      "builder_routed_deployer_fee_usd": 3257.024262140485,      "crossed_fills": 193620,      "taker_pct": 61.618659359754055,      "routed_closed_pnl_usd": -173991.42875996322    },    {      "date": "2026-09-02",      "builders": 426,      "assets": 519,      "fee_usd": 243552.30523937644,      "volume_usd": 649788619.894209,      "share_volume_usd": 649788619.894209,      "fills": 960364,      "users": 31046,      "revenue_per_user": 7.8448851781027,      "fee_rate_bps": 3.748177450061049,      "fee_usd_node": 243552.30523937644,      "trader_fee_usd": 436195.37178474676,      "builder_routed_deployer_fee_usd": 15056.07115401947,      "crossed_fills": 606377,      "taker_pct": 63.14033012482767,      "routed_closed_pnl_usd": -550294.1408118871    }  ]}