Priority Fees Dashboard
Free
GET /priority-fees/dashboard
Read priority fee totals, payer concentration, payment history, and auction activity for the selected range. The response includes HYPE amounts and their historical USDC values.
Rate limits
| Free | Dev | Pro | Team |
|---|---|---|---|
| 30/min | 60/min | 120/min | 120/min |
All priority-fee endpoints, for every range, use the live request quota. This quota is shared with other live endpoints and across all API keys on your account.
On a 429 response, wait for the Retry-After period before retrying. See Rate limits.
Response fields
| Field | Meaning |
|---|---|
| range, start_time, end_time | Selected range and its UTC bounds. |
| interval, token | Timeseries buckets are hour for 4h and 1d, and day for 7d, 30d, and all. The payment token is HYPE. |
| summary | Total fees, payments, unique payers, payer concentration, auction counts, average closing prices, and the largest Slot 0 time share. |
| timeseries | Bucketed fees, cumulative fees, payments, unique payers, auction counts, and average closing prices. |
| payer_timeseries | Wallet series definitions and bucketed amounts. Each values dictionary contains HYPE amounts; usdc_values contains historical USDC estimates using the same series keys. |
| payers | Leading payer wallets with amounts, payment counts, fee shares, auction fields, and last_payment_at. The list includes the top 50 by HYPE paid and the top 50 by USDC value; overlapping wallets appear once, so it can contain up to 100 rows. |
| attributions | Payment totals grouped by wallet, IP, and slot_id, with fee shares and per-IP/slot auction results. |
| slots | Auction counts, filled and empty counts, average and maximum closing prices, and the last auction time for each slot. |
| recent_payments | Up to 50 payments, newest first, including time, block_number, hash, users, wallet, slot_id, ip, and HYPE/USDC amounts. |
| metadata | coverage_end_time and generated_at are UTC timestamps. fee_scope is read. |
Reading the response
- Amounts ending in _hype are paid in HYPE. Amounts ending in _usdc are historical USDC value estimates, not additional USDC payments.
- Timestamps are UTC. Use metadata.coverage_end_time for the end of the reported data and metadata.generated_at for the time the analytics result was generated.
- Null means no reported value. It is distinct from a genuine zero.
- Payer and attribution share_pct and share_usdc_pct both measure the percentage of total fees paid by historical USDC value. Summary largest_payer_share_pct and top5_payer_share_pct use the same basis as their _usdc_pct counterparts.
- Attribution auction_win_share_pct is the IP address's wins divided by all completed auctions in that slot, including empty auctions. It does not measure the wallet's share across every slot.
- summary.largest_slot_0_time_share_pct is the largest participant share of recorded Slot 0 priority time. Empty intervals remain in the denominator. See Slots for participant-level time shares.
- Timeseries cumulative fees accumulate within the selected range. Result arrays in the example are shortened for readability.
Authentication
Requires a valid API key in the X-Api-Key header. Available on all plans.
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
range | string | – | 4h, 1d, 7d, 30d, or all. Defaults to all. All available history begins on 10 April 2026. |
Example request
bash
curl -H "X-Api-Key: lk_live_your_key_here" \
"https://api.loris.tools/priority-fees/dashboard?range=4h"Example response
json
{
"range": "4h",
"start_time": "2026-11-01T00:00:00Z",
"end_time": "2026-11-01T04:00:00Z",
"interval": "hour",
"token": "HYPE",
"summary": {
"total_fees_hype": 1.25,
"total_fees_usdc": 50,
"payment_count": 1,
"unique_payers": 1,
"largest_payer_share_pct": 100,
"largest_payer_share_usdc_pct": 100,
"largest_slot_0_time_share_pct": 50,
"top5_payer_share_pct": 100,
"top5_payer_share_usdc_pct": 100,
"auction_count": 3,
"filled_auction_count": 1,
"empty_auction_count": 2,
"avg_auction_price_hype": 1.25,
"avg_auction_price_usdc": 50
},
"timeseries": [
{
"time": "2026-11-01T00:00:00Z",
"fees_hype": 1.25,
"fees_usdc": 50,
"payment_count": 1,
"cumulative_fees_hype": 1.25,
"cumulative_fees_usdc": 50,
"unique_payers": 1,
"auction_count": 3,
"filled_auction_count": 1,
"avg_auction_price_hype": 1.25,
"avg_auction_price_usdc": 50
}
],
"payer_timeseries": {
"series": [
{
"key": "0x0000000000000000000000000000000000000001",
"address": "0x0000000000000000000000000000000000000001"
}
],
"data": [
{
"time": "2026-11-01T00:00:00Z",
"values": {
"0x0000000000000000000000000000000000000001": 1.25
},
"usdc_values": {
"0x0000000000000000000000000000000000000001": 50
}
}
]
},
"payers": [
{
"address": "0x0000000000000000000000000000000000000001",
"fees_hype": 1.25,
"fees_usdc": 50,
"payment_count": 1,
"share_pct": 100,
"share_usdc_pct": 100,
"auction_wins": null,
"auction_rounds": 3,
"auction_win_share_pct": null,
"last_payment_at": "2026-11-01T00:00:00Z"
}
],
"attributions": [
{
"wallet": "0x0000000000000000000000000000000000000001",
"ip": "192.0.2.1",
"slot_id": 0,
"fees_hype": 1.25,
"fees_usdc": 50,
"payment_count": 1,
"share_pct": 100,
"share_usdc_pct": 100,
"auction_wins": 1,
"auction_rounds": 3,
"auction_win_share_pct": 33.33333333333333,
"last_payment_at": "2026-11-01T00:00:00Z"
}
],
"slots": [
{
"slot_id": 0,
"auction_count": 3,
"filled_auction_count": 1,
"empty_auction_count": 2,
"avg_price_hype": 1.25,
"avg_price_usdc": 50,
"max_price_hype": 1.25,
"max_price_usdc": 50,
"last_auction_at": "2026-11-01T00:06:00Z"
}
],
"recent_payments": [
{
"time": "2026-11-01T00:00:00Z",
"block_number": 123456789,
"hash": "0x1111111111111111111111111111111111111111111111111111111111111111",
"users": [
"0x0000000000000000000000000000000000000001"
],
"amount_hype": 1.25,
"amount_usdc": 50,
"wallet": "0x0000000000000000000000000000000000000001",
"slot_id": 0,
"ip": "192.0.2.1"
}
],
"metadata": {
"coverage_end_time": "2026-11-01T04:00:00Z",
"generated_at": "2026-11-01T04:05:00Z",
"fee_scope": "read"
}
}Errors
400— Invalid range.405— Use GET for this endpoint.429— Live request quota exceeded. Wait for the Retry-After period before retrying.503— Priority fee data is temporarily unavailable. Try again shortly.
For authentication errors (401) and rate limit responses (429), see Errors.