TriportRPC

List known MEV cache hosts

GEThttps://api.triport.io/v1/sol/intel/mev-cache/hosts

Returns the full inventory of MEV-cache hosts Triport currently tracks, each with its last-seen timestamp and how many samples have been collected.

Solanasol_mev_intelbusiness (RPS-per-tier with burst; see [rate-limits](../../rate-limits.md))

The MEV-intel surface exposes competitive intelligence about hosts observed serving MEV-cache traffic on Solana. This endpoint is the entry point: it returns the complete list of distinct hosts that have been seen, so you can discover which hosts to inspect in more detail.

For each host you get its most recent observation time (last_seen) and the number of samples accumulated for it (sample_count). Use this list to populate a host picker, then drill into a single host with GET /v1/sol/intel/mev-cache/host/{host} for its current metrics, or .../host/{host}/series for a metric time-series. The aggregate ranking lives at GET /v1/sol/intel/mev-cache/leaderboard.

The endpoint takes no parameters and is not paginated — it returns every tracked host in a single array. Hosts with a low sample_count may have only just been discovered; last_seen lets you filter out stale entries client-side.

Parameters

None. This endpoint accepts no path, query, or body parameters.

Response

Response fields

The body is a JSON array of host objects.

FieldTypeDescription
hoststringHost identifier (IP address) of the tracked MEV-cache host. Always present.
last_seenstring (date-time, RFC 3339)Timestamp of the most recent observation of this host.
sample_countinteger (≥ 0)Number of samples collected for this host so far.

Errors

CodeMeaningWhen it happens
401unauthorized / trial_expired / subscription_expiredMissing, invalid, or expired credentials.
403tier_insufficientThe key is authenticated but below the business tier required by the sol_mev_intel category.
429rate_limitedSustained RPS for your tier exceeded; honor the Retry-After header.

See the shared errors reference for the full error envelope (error, message, request_id) and the per-status detail fields.

Examples

JavaScript (fetch)

const res = await fetch("https://api.triport.io/v1/sol/intel/mev-cache/hosts", {
  headers: { Authorization: `Bearer ${process.env.TRIPORT_API_KEY}` },
});
if (!res.ok) throw new Error(`mev-cache hosts failed: ${res.status}`);
const hosts = await res.json();
for (const h of hosts) {
  console.log(`${h.host}${h.sample_count} samples, last seen ${h.last_seen}`);
}

TypeScript SDK (@triport/sdk)

import { TriportClient } from "@triport/sdk";


const client = new TriportClient({ apiKey: process.env.TRIPORT_API_KEY });


const hosts = await client.sol.intel.mevCache.hosts();
hosts.forEach((h) => {
  console.log(`${h.host}: ${h.sampleCount} samples (last seen ${h.lastSeen})`);
});

Python (triport-sdk)

import os
from triport import TriportClient


client = TriportClient(api_key=os.environ["TRIPORT_API_KEY"])


hosts = client.sol.intel.mev_cache.hosts()
for h in hosts:
    print(f"{h.host}: {h.sample_count} samples (last seen {h.last_seen})")

Notes

  • The response is a flat array with no pagination wrapper — it lists every host currently tracked. Expect the size to grow over time as new hosts are discovered.
  • last_seen and sample_count are optional in the schema; only host is guaranteed. Code defensively for hosts that have just been registered.
  • This endpoint is read-only intelligence — it does not start, stop, or configure any collection. Discovery is driven server-side.
  • Related: host snapshot, host time-series, leaderboard.