This is a Developer Preview signal. The reading guidance below is stable, but the exact field paths under
selatTransactabilityIndex may change during preview. Read for meaning, not as a frozen wire contract.Where it appears
Each endpoint’s score rides the inbound402 Payment Required challenge that the SELAT Router returns to your agent, under extensions.selatTransactabilityIndex. The wire key keeps the layer’s name; the value it carries is that one endpoint’s score. Because it travels on the inbound challenge, it is present regardless of which rail the payment is ultimately routed over — both x402 and MPP-routed challenges carry it.
stats may carry one or more windows — 24h, 7d, and all. Read 24h
for recency and the wider windows for sample size: all accumulates the most
captured payments, so a rate there carries more evidence than the same rate over
24h. A window with no data is omitted; if none has data, stats is an empty
object ({}), and lastPaid is likewise {} when the endpoint has no recorded
payment.
What each reading means
All readings live underinfo.healthStatus (see the example above); the paths below are relative to it.
How to read it safely
successRateis transport-level. It records whether a captured payment was answered with a2xx, not whether the payload was correct, complete, or useful. An endpoint can hold a perfect rate and still return content your task cannot use.paidNumis your confidence weight. A rate over a handful of captured payments carries far less evidence than the same rate over many. Read the two numbers together, never the rate alone.- A
5xxlastPaid.statusor a lowsuccessRatedescribes a weak recent delivery record — the upstream captured payment and failed to deliver. A4xxis different: the request was rejected and the upstream was never paid, so it says nothing about the endpoint’s reliability — the decision trace attributes it to the requester (yourRequests), not the endpoint. The score reports what it observed — it does not recommend an action or point you to a different endpoint. The decision stays with you.
Reading it today
The scores already ship. Any agent running the SELAT CLI or a SELAT plugin can read them without an account, a wallet, or a spend — discovery and probing are both free. Rank candidate endpoints for a task, at no cost:402 challenge your agent receives, under extensions.selatTransactabilityIndex.info.healthStatus — an agent can read it straight off the challenge before signing.
Because it rides the challenge, any HTTP client can read the score — no SELAT tooling required. A plain curl to the SELAT Router proxy returns the 402; the block travels base64-encoded in the payment-required header:
As structured data
For an agent that needs to log, annotate, rank, or audit the reading, SELAT also computes it as a machine-readable decision trace (quote.transactabilityTrace) that separates failures by who caused them and never blends the network and first-party readings. See the Decision trace reference.