- Rank, reason, grade
- One call for the whole board
quoted on the rail
Three things. Scope is the price.
The list is cheap. Measurements scale with how many names you take. Reasoning is one name, on purpose. Priced in dollars, quoted in XRP at request time. Each payment buys exactly one response; replay of a settled hash is refused.
- Eight measurements per name
- Peer percentiles, history, holders, events
- Same product — scope is the only variable
- Either way: the case for it, and the case against
- Risks, and what would flip the view
- One name on purpose — inference is not a list
start here
Point an agent at it.
No signup. The 402 challenge is the entire onboarding — your agent asks, gets quoted, pays, and receives. Read the contract first if you prefer.
read this first
The grade is the goods.
There are 185 signal services on this rail. Every one of them returns confident JSON, and none of them can tell you whether that confidence is earned — because a ranking cannot be checked without waiting for outcomes. Your agent pays first and finds out later, if ever.
This endpoint ships the answer to that question in the same response as the ranking. How many closed trades stand behind it, what gate they are measured against, what the measured correlation actually is, and one plain sentence saying whether to act on it.
Today that sentence says do not size on this. The strategy has not cleared its own pre-registered gate and the measured edge is negative. We publish that rather than hide it — an agent that can trust the bad readings can trust the good ones. When the gate clears, the same field will say so, and you will not have to take our word for either.
who this is for
Your agent has to pick something.
An autonomous agent working a crypto universe faces the same problem every cycle: thousands of candidates, no way to rank them, and no budget to run its own scanner. The usual answer is to buy a price feed and do the work yourself — several calls, a normalisation step, and a judgement your model was not built to make.
Five API calls, a reduce step, and your own inference spent deciding which of 5,400 tokens deserves attention.
One call. Ranked candidates, the reason each ranks there, peer percentiles, observed history, holder concentration, and cross-chain event context — already joined.
The measured track record of the ranking, in the same response, so your agent can decide how much weight to give it instead of guessing.
No signup, no API key, no subscription. The 402 challenge is the whole onboarding.
Solana, Base, Arbitrum, Ethereum, Optimism, Polygon, BSC — scanned continuously, one schema.
Structured JSON with a published schema. Absent data is named as absent, never nulled into looking clean.
live · crypto universe
The board, right now.
Example rows — the shape of a response, with invented symbols. The scan itself is live.
| # | Symbol | Score | Ready | Why |
|---|
what the pack collapses
One live name, fully expanded.
Peer percentiles, observed history, market quality, the model's read, and recent events — in one call.
cross-chain · last 24h
Event tape
loading…
written on demand
The model writes. The code checks.
Any figure in the memo that cannot be found in the payload it was given is listed as unverified, and the memo is marked suspect rather than shipped quietly.
not requested yet
integration
Four moves, no onboarding.
Standard x402. Any client library that speaks the protocol works without special-casing this server.
Your agent GETs the
resource with no payment. It gets 402 and a quote in the
PAYMENT-REQUIRED header — amount, asset, address, invoice id.
It signs an XRPL
payment matching the quote and retries with the blob in
PAYMENT-SIGNATURE.
The facilitator verifies and settles. We never touch a key — we only ask whether it happened.
The body returns,
with the settlement receipt in PAYMENT-RESPONSE. That hash is spent;
it cannot buy a second response.
# the whole integration
curl https://your-host/pack/crypto # 402 + quote
curl -H "PAYMENT-SIGNATURE: $BLOB" \
https://your-host/pack/crypto # 200 + goods + receipt
# python, with any x402 client
from x402 import Client
r = Client(wallet).get("https://your-host/pack/crypto")
for name in r.json()["shortlist"]:
if r.json()["grade"]["state"] == "graded":
consider(name) # trust it
else:
shortlist_only(name) # filter, do not size
the 402 challenge
Pay on XRPL, or do not pass.
Every rejection names the stage that rejected it, so a caller knows whether to fix their encoding, their signature, or stop replaying a spent payment.
how a refusal is reported
loading…
What this merchant holds, and what it does not
A receiving address and nothing else. No signing key exists on this machine — the seed for the testnet account was shown once at creation and never written to disk. Settlement is performed by the facilitator; this server only asks whether it happened.
If the facilitator cannot be reached, the request is refused, not served. A paywall whose failure mode is “let them through” is not a paywall.