Jito Explorer is a public analytics surface for Jito bundles on Solana: it shows recent and largest bundles, tip distributions, landed compute units per slot, and per-signer activity. This article explains what each view actually measures, how bundles relate to normal Solana transactions, and how to reproduce the same signals against your own RPC endpoint so you are not dependent on a single dashboard. It also covers the diagnostic workflow for a bundle that does not land, the tradeoffs of dashboard-only analysis, and how to move from exploration to a repeatable measurement pipeline.
What Jito Explorer Actually Shows
Jito Explorer is a web dashboard that aggregates data about Jito bundles on Solana mainnet. A bundle is an ordered group of up to five transactions that a searcher submits to a Jito block engine; the bundle either lands atomically in a single slot or does not land at all. The explorer surfaces that activity as charts and tables rather than as raw transaction logs.
The main views you will encounter are: an overview of bundle and tip volume over a selectable time window (week, month, year), a most-recent and largest-tips bundle table, per-slot bundle statistics including landed compute-unit percentage and block tips, a largest-bundles-by-signer ranking, and companion tools such as a fee-stats view, a searcher scan, and a real-time tip-floor stream. Each view answers a different question, and mixing them up is the most common source of confusion.
This article is about interpretation and reproduction, not about the dashboard's visual design. If you only need a Solana RPC endpoint to run the queries below, the concrete provider choice is handled separately by RPC Assistant; the methodology here is provider-neutral.
- Overview charts: bundle count and tip volume trends over time.
- Bundle tables: recent and largest-tip bundles with assets, tipper, validator, and tip amount.
- Slot stats: landed compute units, block tips, and bundle count per slot.
- Signer rankings: which addresses are producing the largest bundles.
- Companion tools: fee stats, searcher scan, and a streaming tip floor.
Assumptions and Prerequisites
The procedures below assume you have a Solana mainnet RPC endpoint that supports standard JSON-RPC methods such as getSlot, getBlock, getTransaction, and getSignaturesForAddress. Jito-specific data is not a native Solana RPC namespace; bundle metadata is produced by Jito infrastructure and is exposed through Jito's own APIs and dashboards. Your RPC gives you the on-chain ground truth (which transactions landed, in which slot, with what compute usage), while Jito surfaces give you the bundle-level context.
You will also want a way to run small scripts: curl for quick probes, and either Node.js or Python for anything that loops over slots. Keep a placeholder RPC_URL and, if you submit bundles, a PRIVATE_KEY in environment variables rather than in source files. Nothing in this guide requires mainnet SOL to read data, but submitting a bundle does.
The Mental Model: Bundles, Tips, and Slots
A normal Solana transaction is atomic on its own: all of its instructions succeed or fail together. Separate transactions are not atomic with each other, so a searcher who needs two dependent operations to both land has no native guarantee. Jito bundles solve that by letting a searcher submit an ordered list of transactions that the block engine forwards to a Jito-enabled validator as a unit. If the bundle cannot execute in order within the slot, none of it lands.
The economic lever is the tip. A bundle includes a transfer to a Jito tip account, and validators are incentivized to include bundles with higher tips. The tip floor is therefore a live market price for bundle inclusion, and it moves with congestion. Jito Explorer's tip-floor view streams percentiles of that price; the bundle tables show realized tips on bundles that actually landed.
The slot is the unit of comparison. Every bundle either lands in a specific slot or is dropped. That is why the explorer's per-slot chart (landed compute units, block tips, bundle count) is the most analytically useful view: it lets you see how much of a block's compute budget bundles consumed and what the block earned in tips.
Reading the Bundle Table Without Misreading It
The most-recent and largest-tips tables list bundles with a truncated signature, the assets involved, the tipper address, the validator that landed the bundle, the tip amount in SOL, and a relative timestamp. Two cautions apply. First, 'largest tips' is a ranking of realized tips, not of profitability; a large tip can still be a losing trade for the searcher. Second, the assets column reflects token movements inside the bundle, which is useful for spotting arbitrage patterns but is not a statement about intent.
When you compare a bundle in the table against on-chain data, use the full signature, not the truncated form. The explorer's truncated hashes are display conveniences; the RPC methods below require the complete base58 signature.
Reproducing Slot-Level Bundle Metrics with curl
The fastest way to ground-truth a slot you saw in the explorer is to pull the block and inspect its transactions and compute usage. The following probe returns the current slot and then the block at a slot you choose. Replace RPC_URL and SLOT with your endpoint and the slot number from the explorer's per-slot chart.
The response includes each transaction's signature, the compute units consumed, and the fee. Summing compute units across transactions in the block gives you the same landed-compute figure the explorer charts, and you can cross-reference signatures against the bundle table.
curl -s RPC_URL -X POST -H 'Content-Type: application/json' -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlock",
"params": [
SLOT,
{
"encoding": "json",
"transactionDetails": "full",
"rewards": false,
"maxSupportedTransactionVersion": 0
}
]
}'A Runnable Script to Aggregate Bundle Activity
For anything beyond a single slot, script the loop. The Node.js example below walks a range of slots, fetches each block, and prints per-slot transaction count and total compute units. It uses only standard JSON-RPC, so it works against any Solana mainnet endpoint. Set RPC_URL and adjust START_SLOT and END_SLOT to the window you want to study.
The output is a table you can paste into a spreadsheet. Compare it against the explorer's per-slot chart for the same window; if the shapes diverge, the most likely cause is that your window includes skipped slots, which return null from getBlock and should be counted separately rather than treated as zero-activity blocks.
const RPC_URL = process.env.RPC_URL;
const START_SLOT = 0; // set to your start slot
const END_SLOT = 0; // set to your end slot
async function rpc(method, params) {
const res = await fetch(RPC_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ jsonrpc: '2.0', id: 1, method, params })
});
const json = await res.json();
if (json.error) throw new Error(JSON.stringify(json.error));
return json.result;
}
async function main() {
for (let slot = START_SLOT; slot <= END_SLOT; slot++) {
const block = await rpc('getBlock', [
slot,
{ encoding: 'json', transactionDetails: 'full', rewards: false, maxSupportedTransactionVersion: 0 }
]);
if (!block) {
console.log(`${slot}\tskipped`);
continue;
}
const txs = block.transactions || [];
const cu = txs.reduce((sum, t) => sum + (t.meta?.computeUnitsConsumed || 0), 0);
console.log(`${slot}\t${txs.length}\t${cu}`);
}
}
main().catch((e) => { console.error(e); process.exit(1); });Verifying a Specific Bundle On-Chain
When a bundle appears in the explorer but you want to confirm its contents, fetch the transaction by signature. The call below returns the transaction with metadata, including the log messages and inner instructions, which is where tip transfers and swap instructions appear.
A successful verification has three properties: the transaction exists at the slot the explorer reported, its meta.err is null, and the inner instructions include a transfer to a Jito tip account whose lamport amount matches the tip shown in the table. If any of those fail, treat the dashboard row as stale or misattributed and re-check before drawing conclusions.
curl -s RPC_URL -X POST -H 'Content-Type: application/json' -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTransaction",
"params": [
"SIGNATURE",
{ "encoding": "json", "maxSupportedTransactionVersion": 0 }
]
}'Results Table: What to Record
Because tip floors and bundle volumes change continuously, no fixed numbers belong in a guide. Instead, record your own measurements in a table with these columns so results are comparable across runs and across endpoints. Run the same window against two RPC endpoints and fill in both rows; divergence in slot coverage or compute totals is a signal about endpoint consistency, not about Jito itself.
- Window (start slot, end slot, UTC timestamps).
- Endpoint label (RPC_URL alias, not the raw URL).
- Slots requested, slots returned, slots skipped.
- Total transactions and total compute units consumed.
- Bundles observed in the explorer for the same window.
- Median and p90 tip from the tip-floor view at capture time.
- Notes on any slot where your totals and the dashboard disagree.
Troubleshooting Common Discrepancies
Most confusion around Jito Explorer comes from four recurring situations. Work through them in order before assuming the dashboard is wrong.
First, skipped slots. A slot with no block returns null, and treating it as zero activity will make your aggregate look lower than the chart. Second, timezone and window boundaries: the explorer's week/month/year selector uses its own boundary logic, so a manual slot range will rarely align exactly. Third, truncated signatures: copying a shortened hash from the table will fail getTransaction. Fourth, tip attribution: the tip shown is the realized transfer inside the bundle, which may differ from the tip floor at submission time because the floor moved between submission and landing.
- Confirm the slot actually produced a block before comparing totals.
- Align your slot window to the explorer's displayed range, not to wall-clock intuition.
- Use full base58 signatures for every RPC lookup.
- Distinguish realized tip from the live tip floor when reasoning about inclusion.
Limitations and Tradeoffs of Dashboard-First Analysis
A public explorer is optimized for exploration, not for reproducible research. Its aggregations are convenient but opaque: you cannot see exactly how a percentile was computed, how failed bundles are counted, or how the signer ranking handles address clustering. For one-off questions that is fine. For anything you will cite, publish, or build a strategy on, reproduce the metric from raw RPC data and keep the script.
There is also a dependency tradeoff. Relying on a single dashboard means your view of the market is only as fresh and complete as that dashboard's ingestion. Running your own slot-level aggregation against a reliable RPC endpoint gives you an independent check and lets you extend the analysis, for example by joining bundle signatures to your own searcher logs. The cost is engineering time and RPC throughput; the benefit is that your numbers are yours to defend.
From Exploration to a Repeatable Pipeline
Once you can reproduce slot-level totals, the natural next step is to schedule the aggregation and store results. A simple pipeline runs the Node.js loop on a timer, writes one row per slot to a database, and computes rolling tip and compute-utilization summaries. That gives you a historical series you control, which is far more useful for tuning tip strategy than reading a live chart.
If you are operating at higher volume, a dedicated node removes the variability of shared endpoints and keeps your slot coverage consistent. Review the available networks and node options before committing, and keep the endpoint choice separate from the analysis code so you can swap providers without rewriting scripts.
- Schedule the slot loop and persist results with a timestamp and endpoint label.
- Compute rolling medians rather than single-slot snapshots.
- Alert on sudden divergence between your totals and the public dashboard.
- Keep RPC credentials in environment variables and rotate them.
Where to Go Next
If your goal is to submit bundles rather than only observe them, the next topics are bundle construction, tip-account selection, and the block-engine submission flow; those are separate from explorer interpretation and deserve their own treatment. If your goal is reliable data collection, start with a Solana endpoint that meets your throughput needs, then build the slot aggregation above against it.
For endpoint selection specifically, use RPC Assistant rather than guessing from a list. For infrastructure planning, compare shared and dedicated options against your expected request volume, and revisit the measurement table after any provider change so you can confirm your slot coverage stayed consistent.