Read-only JSON endpoints serving the same scored/ranked data the dashboard renders. Public, no auth, cached ~30s at the edge. Prefer the visuals? Drop a live chart, table, leaderboard or score strip onto your page with the embeddable widgets.
infra is only valid with a concrete region (the Overall blend is always pooled); passing both returns 400.rank is null for providers ineligible in every region.Ranked leaderboard. Overall cross-region blend by default; a single-region board when region is concrete. The Overall board is a workload-preset method-blend (see preset) unless method= is set, which forces a legacy single-method board. Returns rank, composite score (+ L/W/R/C/F sub-scores), p50/p95/p99, win-rate, sample counts, success/correctness rates, eligibility, and failure breakdown.
regiondefault: overallpresetdefault: balancedinfradefault: pooled (__all__)methoddefault: preset blend (getTransaction when method is set)modedefault: coldwindowdefault: 24eligibleOnlydefault: off{
"meta": {
"mode": "preset", // "preset" (overall blend) | "overall" (single-method) | "region"
"region": "overall",
"preset": "balanced", // null when mode != "preset"
"infra": null, // worker_provider key, only in region mode
"method": "getTransaction",
"connection_mode": "cold",
"window_hours": 24,
"methodology_version": 2,
"weights": { "latency": 0.4, "winRate": 0.2, "reliability": 0.2,
"correctness": 0.1, "freshness": 0.1 },
"eligible_count": 4,
"generated_at": "2026-06-18T12:00:00.000Z"
},
"rows": [ // shape varies by meta.mode; preset rows shown
{
"provider_id": "helius",
"provider_name": "Helius",
"rank": 1, // null if ineligible in every region
"total": 92.4, // composite score, 0-100
"latency_sub": 95.1, "win_sub": 88.0, "reliability_sub": 99.2,
"correctness_sub": 100, "freshness_sub": 90.3,
"coverage_pct": 1.0, "coverage_ok": true, "exclusion_reason": null,
"total_wins": 812, "total_calls": 41280, "total_failed": 96,
"total_challenges_with_winner": 1024,
"win_rate": 0.79, // 0-1, region+method-weighted (tracks the rank), not a pooled average
"success_rate_calls": 0.9977,
"failure_breakdown": [ { "category": "timeout", "n": 61 } ],
"per_geo": { "na-east": { "total": 93.1, "latency_sub": 96.0,
"win_sub": 89.0, "reliability_sub": 99.4,
"correctness_sub": 100, "freshness_sub": 91.0 } },
"per_method": { "getTransaction": { "total": 94.0, "p50": 41, "p95": 110 } },
"caveat_flags": [], "caveat_explanation": ""
}
]
}Everything needed to build a valid /api/leaderboard query: methods, regions, modes, windows, scoring weights, default region weights, min method coverage, the workload presets (method/region/component weights per preset), methodology version, the provider roster, and the currently-active geos / infra / infra×geo pairs.
{
"methodology_version": 2,
"weights": { "latency": 0.4, "winRate": 0.2, "reliability": 0.2,
"correctness": 0.1, "freshness": 0.1 },
"region_weights": { "na-east": 0.25, "eu-central": 0.2, "ap-northeast": 0.15 },
"min_method_coverage": 0.6,
"presets": [
{
"id": "balanced", "label": "Balanced",
"methods": ["getTransaction", "getBlock", "..."],
"method_weights": { "getTransaction": 0.2, "getBlock": 0.1 },
"region_weights": { "na-east": 0.25 },
"component_weights": { "latency": 0.4, "winRate": 0.2, "reliability": 0.2,
"correctness": 0.1, "freshness": 0.1 }
}
],
"methods": ["getTransaction", "getBlock", "..."],
"geo_regions": ["na-east", "eu-central", "..."],
"connection_modes": ["cold", "warm"],
"windows": [ { "value": 1, "label": "1h" }, { "value": 24, "label": "24h" } ],
"providers": [ { "id": "helius", "name": "Helius" } ],
"active_geos": ["na-east", "eu-central"],
"active_infra": ["aws", "gcp"],
"active_infra_geo": [ { "worker_provider": "aws", "geo": "na-east" } ],
"generated_at": "2026-06-18T12:00:00.000Z"
}Per-(method × provider × cold/warm) p50 + p95 over the window, pooled across all regions. One row per (method, provider_id, connection_mode).
windowdefault: 24{
"meta": { "window_hours": 24, "generated_at": "2026-06-18T12:00:00.000Z" },
"rows": [
{
"method": "getTransaction",
"provider_id": "helius",
"connection_mode": "cold",
"p50": 41, // ms, correct-only; null if no valid samples
"p95": 110
}
]
}Single-provider deep dive from the same Overall board /api/leaderboard returns, so the shape mirrors that board's row: the DEFAULT (no method=) is a preset row — composite score + L/W/R/C/F sub-scores, coverage, per-geo scores, and a per-method p50/p95 drill-down (no single blended percentile, since a preset spans methods). An explicit method= forces the single-method board, whose row instead carries geo-blended p50_blend/p95_blend/p99_blend. [id] accepts the slug or the raw provider_id; unknown ids 404.
presetdefault: balancedmethoddefault: preset blend (getTransaction when method is set)modedefault: coldwindowdefault: 24{
"meta": {
"provider_id": "helius",
"provider_name": "Helius",
"slug": "helius",
"method": "getTransaction",
"connection_mode": "cold",
"window_hours": 24,
"methodology_version": 2,
"eligible_count": 4,
"generated_at": "2026-06-18T12:00:00.000Z"
},
"row": { // null if not on the board. DEFAULT = preset row, shown here
"provider_id": "helius",
"provider_name": "Helius",
"rank": 1, // null if ineligible in every region
"total": 92.4, // composite preset score, 0-100
"latency_sub": 95.1, "win_sub": 88.0, "reliability_sub": 99.2,
"correctness_sub": 100, "freshness_sub": 90.3,
"coverage_pct": 1.0, "coverage_ok": true, "exclusion_reason": null,
"total_wins": 812, "total_calls": 41280, "total_failed": 96,
"total_challenges_with_winner": 1024,
"win_rate": 0.79, // 0-1, region+method-weighted (tracks the rank), not a pooled average
"success_rate_calls": 0.9977,
"failure_breakdown": [ { "category": "timeout", "n": 61 } ],
"per_geo": { "na-east": { "total": 93.1, "latency_sub": 96.0,
"win_sub": 89.0, "reliability_sub": 99.4,
"correctness_sub": 100, "freshness_sub": 91.0 } },
"per_method": { "getTransaction": { "total": 94.0, "p50": 41, "p95": 110 } },
"caveat_flags": [], "caveat_explanation": ""
// With an explicit method= the row is the single-method board instead:
// drops latency_sub..freshness_sub / coverage_* / per_method, and adds
// "p50_blend": 41, "p95_blend": 110, "p99_blend": 180 (geo-blended percentiles).
}
}Direct A-vs-B win rate: of the challenges BOTH providers answered correctly, how often a was faster than b (ties → earlier request start). Distinct from the leaderboard's global win rate (fastest-correct across the whole panel). Overall region-blends the per-geo rates like the leaderboard; a concrete region is a single-geo passthrough. Rates are null (with a note) when no challenge was contested — e.g. a method one provider doesn't support. a / b accept a slug or raw provider_id; unknown ids 404, and a === b is 400.
adefault: —bdefault: —methoddefault: getTransactionmodedefault: coldwindowdefault: 24regiondefault: overall{
"meta": {
"a": "helius", "b": "quicknode",
"a_name": "Helius", "b_name": "QuickNode",
"a_slug": "helius", "b_slug": "quicknode",
"method": "getTransaction",
"connection_mode": "cold",
"window_hours": 24,
"region": "overall",
"methodology_version": 3,
"generated_at": "2026-06-18T12:00:00.000Z"
},
"a_win_rate": 0.62, // 0-1, region-blended; b_win_rate = 1 - a_win_rate when contested
"b_win_rate": 0.38,
"a_wins": 812, // raw summed counts (transparency; headline rate is the blend)
"b_wins": 498,
"n_contested": 1310 // challenges both answered correctly (= a_wins + b_wins)
// "note": "..." // present only when n_contested === 0
}Latency-distribution series (CDF / histogram / box) for one method × mode × window × geo × infra, read from the precomputed latency_histogram_* tables (fast at any window). Note: region here is a GEO, not a raw cloud region; intended for lazy fetch when a user selects the distribution metric.
methoddefault: getTransactionmodedefault: coldhoursdefault: 24regiondefault: Overall (all geos)wpdefault: all (pooled){
"series": [ // one entry per provider with samples
{
"id": "helius",
"name": "Helius",
"color": "#...",
"n": 12044, // sample count behind the distribution
"q": [12, 18, "...", 980], // 101 percentile latencies, p0..p100 (ms)
"p50": 41, "p95": 110, "p99": 180,
"min": 12, "p25": 28, "p75": 70,
"hist": [ { "bucket": 32, "cnt": 410 } ], // log-bin histogram
"histMax": 980,
"winPct": 79.0 // region-weighted win rate like the leaderboard (Overall blends geos)
}
]
}Read-only feed of recent challenges (the verification rows behind /challenges), paginated. Returns the same slice the /challenges table renders — a bare array.
methoddefault: allbucketdefault: allstatusdefault: allwindowdefault: 1targetdefault: alloffsetdefault: 0[ // bare array, newest first, page of 50
{
"id": "1284013",
"method": "getTransaction",
"bucket": "recent",
"status": "ready", // ready | expired
"generated_at": "2026-06-18T11:59:30.000Z",
"params": { "...": "method-specific challenge params" },
"is_honeypot": false,
"total": 5, // responses graded for this challenge
"correct": 5, "ambiguous": 0, "incorrect": 0
}
]Compact fleet-health summary (the data behind the header status pill). No params.
{
"status": "ok", // overall fleet grade (ok | degraded | down)
"infra": { "live": 6, "total": 6 }, // live benchmarking vantages
"utility": { "healthy": true }, // generator chain-observation RPC
"benchmarked": { "healthy": 5, "total": 5 } // configured provider panel
}Live cumulative sample count (the data behind the Overview counter). No params.
{
"total": 48201337, // all-time samples (this methodology version)
"ratePerSec": 73.4 // recent rate, for client-side extrapolation
}Drop any dashboard component onto your own page as a live <iframe>. Each widget renders the same components the dashboard uses, with the same ~30s-fresh data — no API wiring, no build step. Dark theme; the widgets' own filter toggles stay interactive inside the frame. The embed pages are noindex and framable on helius.dev.
Widgets report their content height to the parent, so add this listener once to size the iframe(s) with no scrollbars:
<script>
addEventListener("message", (e) => {
if (e.data?.type !== "rpcbench-embed-size") return;
for (const f of document.querySelectorAll("iframe")) {
if (f.contentWindow === e.source) f.style.height = e.data.height + "px";
}
});
</script>The full interactive latency-over-time chart — every filter the /performance chart has: Region, Infra, Window, Connection, Method, the RPC provider multi-select, plus the metric (Latency / Score / Distribution), percentile, binning and outlier toggles. All work live inside the frame. The URL params below just set the INITIAL view; providers= seeds the RPC multi-select to a head-to-head (e.g. Helius vs one competitor), still toggleable. The binning and outlier toggles have no param — they are display preferences that always start at their defaults.
providersdefault: all providers shownregionsdefault: all (Overall)wpdefault: all (pooled)methoddefault: getTransactionmodedefault: coldwindowdefault: 24metricdefault: latencypctdefault: p95<iframe
src="https://www.helius.dev/benchmarks/embed/chart?providers=helius,triton"
title="Solana RPC Benchmark — Comparison chart"
style="width:100%;border:0"
scrolling="no"
loading="lazy"
></iframe>Per-method and per-region latency (p50/p95 per provider). The By method / By region tabs, cold/warm, percentile, Infra dropdown and RPC-column toggles all switch client-side inside the frame; window applies at load time.
windowdefault: 24methoddefault: getTransactionprovidersdefault: all providers showntabdefault: methodmodedefault: coldpctdefault: p95infradefault: all (pooled)<iframe
src="https://www.helius.dev/benchmarks/embed/latency-table"
title="Solana RPC Benchmark — Method / region latency table"
style="width:100%;border:0"
scrolling="no"
loading="lazy"
></iframe>The full ranked standings (the home board). Each row expands to a per-method × region latency grid. Honors preset + window only — methods, regions, component weights and cold mode are all derived from the preset.
presetdefault: balancedwindowdefault: 24<iframe
src="https://www.helius.dev/benchmarks/embed/leaderboard?preset=trading"
title="Solana RPC Benchmark — Ranked leaderboard"
style="width:100%;border:0"
scrolling="no"
loading="lazy"
></iframe>Compact composite-score strip (0–100 per provider). Uses the same preset blend as the leaderboard, so the ranking always agrees. Honors preset + window only.
presetdefault: balancedwindowdefault: 24<iframe
src="https://www.helius.dev/benchmarks/embed/score"
title="Solana RPC Benchmark — Score strip"
style="width:100%;border:0"
scrolling="no"
loading="lazy"
></iframe>Rendered live from the same constants the endpoints validate against.
getTransactiongetBlockgetSignaturesForAddressgetSlotgetAccountInfogetProgramAccountsgetTokenAccountsByOwnergetBalancegetTokenSupplygetTokenLargestAccountsgetLatestBlockhashgetTokenAccountBalancegetGenesisHashgetEpochSchedulegetInflationGovernorgetInflationRategetBlockTimegetBlockCommitmentgetBlocksgetInflationRewardgetLeaderSchedulegetBlockProductiongetMaxRetransmitSlotgetMaxShredInsertSlotgetEpochInfogetBlockHeightgetTransactionCountgetVoteAccountsgetRecentPerformanceSamplesgetIdentitygetVersiongetHealthisBlockhashValidgetSlotLeadergetSlotLeaderssimulateTransactionsimulateBundlegetMultipleAccountsgetSignatureStatusesgetMinimumBalanceForRentExemptiongetStakeMinimumDelegationgetBlocksWithLimitgetRecentPrioritizationFeesgetFeeForMessagegetTransactionsForAddressbalancedtradingappsoverallna-easteu-centralap-northeastna-westeu-westap-southeastawsgcpteraswitchlatitudecloudflarehetznercoldwarm1 (1h)6 (6h)24 (24h)168 (7d)720 (30d)heliustritonalchemyquicknodechainstack