DAXPT
xrpl:1 XRP

Solana token measurements for autonomous agents · XRPL · pay per call

Measured. Joined.Priced.

Solana, measured in full. One call returns the candidates, why each one ranks where it does, and how it compares to its peers. No account, no API key, no subscription. Your agent pays for the call and gets the answer.

The measurements are the product: holder concentration, organic score, liquidity and volume, the observed history since we first saw a token, and percentiles against every name we screen — already joined and normalised, so your agent weights them by its own rules instead of rebuilding the join itself.

quoted on the rail

Four things. Whose judgement is the price.

The measurements carry no opinion at all — that tier is the product. Our assessment costs more because it is a claim, and it ships with the evidence for that claim. Bring your own name and we measure it live. Priced in dollars, quoted in XRP at request time; each payment buys one response.

the data no ranking in it at all — yours to weight
Every token we measure
/pack/crypto?scope=measured

Holders and top-10 share, organic score, liquidity and volume, and the observed history since we first saw it.

our picks the names we assessed, with the evidence behind it
Ranks only
/shortlist/crypto

Position, score, and the reason each name ranks where it does.

Ranks with every measurement
/pack/crypto

Everything in the data tier for these names, plus the ranking and the measured evidence for it.

your pick a name you choose, not one of ours
Any Solana token, measured live
/grade/crypto?address=X
1 name

Measured from live candles and chain data, with a percentile against every token we screen. Whatever could not be measured is named rather than hidden.

One name from our universe
/pack/crypto?symbol=X
1 name

The sampling call — the same payload as the list, for a single name.

a name, argued written reasoning, checked against the payload
The case, for and against
/memo/crypto?symbol=X

Thesis, counter-arguments, risks, data gaps, and what would change the view — observable conditions, not vague ones. Every figure is checked back against the source.

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.

the endpoint
/pack/crypto
the contract
GET /schema
the fare
$0.85 · xrpl:1

what you are buying

The join is the product.

Price and volume are everywhere and worth nothing. What costs real money to assemble is the rest: how many wallets hold a token and what share the largest ten control, whether the creator can still mint more supply, what a round trip actually costs to execute, and how liquidity has moved since the token first appeared.

Those live in different places, in different shapes, on different clocks. We collect them continuously, normalise them into one row per token, and add the thing no single source can give you — where a name sits against every other name we screen, as a percentile rather than a raw number your agent has to rank for itself.

That is the work. The ranking on top is ours and you can ignore it: the measurements do not depend on it, and every response carries the ranking's measured evidence state alongside, so an agent that wants to weigh it can.

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.

instead of

Five API calls, a reduce step, and your own inference spent deciding which of 5,400 tokens deserves attention.

you get

One call. Ranked candidates, the reason each ranks there, peer percentiles, observed history, holder concentration, and event context — already joined.

and crucially

How well the ranking has actually predicted — in the same response, so your agent weights it on evidence instead of trust.

no account

No signup, no API key, no subscription. The 402 challenge is the whole onboarding.

one chain, in full

Solana. Holder concentration, mint and freeze authority, organic score and observed history — the checks that need a chain-specific source, actually done. Six more are crawled and none are published until they can be measured the same way.

machine-first

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.

#SymbolScoreReadyWhy

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.

loading…

solana · last 24h

What survives

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.

1 · ask

Your agent GETs the resource with no payment. It gets 402 and a quote in the PAYMENT-REQUIRED header — amount, asset, address, invoice id.

2 · pay

It signs an XRPL payment matching the quote and retries with the blob in PAYMENT-SIGNATURE.

3 · settle

The facilitator verifies and settles. We never touch a key — we only ask whether it happened.

4 · get

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.

loading…

how a refusal is reported

decode
The PAYMENT-SIGNATURE header was absent, or was neither base64 JSON nor JSON.
verify
The facilitator checked the signed transaction against the quote and rejected it.
settle
Verification passed but the ledger submission did not succeed.
replay
That transaction has already bought a response here. Each payment buys exactly one.
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.