Payments on Base + Solana
Lumière makes two things: PayCheck · Agents
1 Lumière PayCheck
AI agents pay for APIs on their own. We watch every listed x402 endpoint and make small test payments to confirm it actually delivers what it charges for.
Monitoring 130,853 endpoints from the x402 Bazaar. 89,582 currently pass our checks, as of Tue, 10 Nov 2026 07:10:40 UTC.
In the last 7 days: 173,531 endpoint checks and 78,628 API and MCP calls from agents. 20,199 real test payments in 30 days.
Check an endpoint freeBrowse all endpointsGet a free API keyFor teams: try spend limits free for 30 days →
Of 130,853 x402 endpoints we monitor, 89,582 pass our checks right now.
Updated Tue, 10 Nov 2026 07:10:40 UTC. Grades refresh after every monitoring cycle (about every 30 minutes).
Browse all 130,853 endpoints by seller →
New research: How to Check an x402 Endpoint Before Paying
https://lumierepaycheck.org/mcp as a connector. Your agent can then check any x402 endpoint before paying it.POST /v1/check-payment and pay only if allow is true:
curl -s https://lumierepaycheck.org/v1/check-payment -H 'content-type: application/json' \
-d '{"url":"https://api.example.com/paid","amount":"10000","payTo":"0xSellerWallet"}'npm i x402-paycheck and wrap it: every payment is checked automatically. Package docsGive your agent one habit: check an endpoint before paying it. No account, no API key. Pick whichever fits how your agent works.
// Before paying any x402 endpoint, ask Lumière PayCheck about this exact payment.
// amount and payTo come from the endpoint's 402 quote.
async function checkBeforePay(url: string, amount: string, payTo: string) {
const res = await fetch("https://lumierepaycheck.org/v1/check-payment", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ url, amount, payTo }),
});
const c = await res.json();
return { pay: res.ok && c.allow === true, reasons: c.reasons ?? [c.error] };
}
const check = await checkBeforePay(target, quote.amount, quote.payTo);
if (!check.pay) throw new Error(`Skipping ${target}: ${check.reasons.join("; ")}`);
// ...then pay with your x402 client as usual# Before paying any x402 endpoint, ask Lumière PayCheck about this exact payment.
# amount and pay_to come from the endpoint's 402 quote.
import requests
def check_before_pay(url, amount, pay_to):
r = requests.post("https://lumierepaycheck.org/v1/check-payment",
json={"url": url, "amount": amount, "payTo": pay_to}, timeout=5)
c = r.json()
return r.ok and c.get("allow") is True, c.get("reasons") or [c.get("error")]
ok, reasons = check_before_pay(target, quote["amount"], quote["payTo"])
if not ok:
raise RuntimeError(f"Skipping {target}: {'; '.join(reasons)}")
# ...then pay with your x402 client as usualhttps://lumierepaycheck.org/mcpCursor and other clients (mcp.json):
{ "mcpServers": { "lumiere-paycheck": { "url": "https://lumierepaycheck.org/mcp" } } }Works with any agent that can call tools. It checks the endpoint, the amount, and the payout wallet, so a hijacked wallet or an overcharge gets blocked.
Before paying any x402 endpoint, call the Lumière PayCheck check_payment tool with the endpoint URL, the amount, and the payTo wallet from its 402 quote. Only pay if allow is true. If it returns allow false, tell me the reasons instead of paying. After paying, call report_outcome with the receipt (or the url and payment tx) and short answers about whether you got what you paid for.Endpoints graded proceed or caution, with no payout-wallet incidents. "Paid and delivered" means we made a real test payment and got back what was advertised. Refreshed after every monitoring cycle.
| Grade | Endpoint | Score | Uptime | Delivery |
|---|---|---|---|---|
| A | https://aaron-protocol-radar.vercel.app/agents/framework-releases | 100 | 100% | Paid and delivered |
| A | https://earthquakes.use.x402atlas.com/recent | 100 | 100% | Paid and delivered |
| A | https://eltociear-contract-guard.hf.space/check | 100 | 100% | Paid and delivered |
| A | https://compute.lonestaroracle.xyz/report | 100 | 100% | Paid and delivered |
| A | https://email-auth.use.x402atlas.com/check | 100 | 100% | Paid and delivered |
| A | https://earnings.lonestaroracle.xyz/calendar | 100 | 100% | Paid and delivered |
| A | https://dependency-risk.use.x402atlas.com/batch | 100 | 100% | Paid and delivered |
| A | https://clinical-trials.use.x402atlas.com/recent | 100 | 100% | Paid and delivered |
| A | https://cycle.lonestaroracle.xyz/cycle | 100 | 100% | Paid and delivered |
| A | https://brazil-macro.use.x402atlas.com/ipca/latest | 100 | 100% | Paid and delivered |
See every endpoint that passes, by seller → Full list as JSON: /v1/leaderboard and catalog totals at /v1/stats.
x402 payments that actually settled to the sellers we monitor over the last 30 days, read straight from Base and Solana. Only payments submitted by recognized facilitators count, so ordinary wallet transfers can't inflate it.
Settled volume
$91.9K
Base $91.0K · Solana $882
Payments
2.91M
Distinct buyers
17,064
Sellers paid
2,135
| # | Seller | Network | 30-day volume from independent buyers | Payments | Independent buyers | Grade |
|---|---|---|---|---|---|---|
| 1 | x402.dtelecom.orgBase | Base | $23.9K | 10,904 | 26of 27 wallets | C |
| 2 | laso.financeBase · +8 endpoints | Base | $2,176of $2,445 | 462 | ~51of 81 wallets | A |
| 3 | ausca.comBase · +6 endpoints | Base | $1,495of $1,510 | 168 | 6 | A |
| 4 | blockrun.aiBase · +69 endpoints | Base | $1,364of $1,568 | 98,358 | ~216of 429 wallets | A |
| 5 | StableEnrichenrichx402.comBase · +37 endpoints | Base | $1,043of $1,257 | 68,743 | ~116of 307 wallets | A |
| 6 | api.bitrefill.comBase · +7 endpoints | Base | $958of $1,154 | 1,769 | ~75of 112 wallets | A |
| 7 | x402.sniperx.funSolana · +9 endpoints | Solana | $670 | 33,689 | 21of 37 wallets | A |
| 8 | cheaptokens.aiBase | Base | $622of $723 | 575 | 16of 21 wallets | C |
| 9 | agi.apify.comBase | Base | $618 | 261 | ~49of 54 wallets | C |
| 10 | AX1 Consoleax1-new.vercel.appBase · +2 endpoints | Base | $615of $30.8K | 1,548,355 | ~50of 9,442 wallets | A |
We count customers, not wallets. Anyone can create 1,000 wallets and pay themselves, so we group buyer wallets by the wallets that funded them: wallets funded from the same source count as one buyer, and payments from groups of 3+ wallets funded by one source (or by the seller itself) aren't counted toward the ranking. Exchanges never group strangers, and the same rule applies to every seller. "~" marks an estimate from a sample of buyers.
The top 10 sellers received 83% of the volume, so a few services carry most of the money. Volume is per payout wallet: when one wallet serves several endpoints, the total covers all of them. It's a floor: history before our index started isn't counted. Per-endpoint data: /v1/usage?url=…
From the team behind Lumière PayCheck
Done-for-you follow-up that runs itself. Unpaid invoices, unanswered quotes, missed calls, missing insurance certificates, lost receipts and review requests, followed up in your name and your voice. You approve every email until you switch it to automatic. Works with QuickBooks, Jobber, Housecall Pro, FreshBooks, Zoho Books, Wave or any spreadsheet, and sends from your own address or your Gmail or Outlook.
From $200/month + $750 setup for one agent · each extra agent $100/month + $400 setup · all six $500/month + $2,000 setup. Cancel any time.
Three layers of checking, running around the clock.
Every day we import every endpoint listed in the x402 Bazaar, the catalog agents use to discover paid APIs.
Every 30 minutes we request each endpoint without paying and record its price, payout wallet, and response time.
We make small real payments and check the response matches what the seller advertised. Agents that pay through us report outcomes too, which point our tests at problems fast.
The formula is public and deterministic. No one can pay for a better grade.
How often it answers with a valid payment quote, over 7 days. It also sets the grade ceiling.
Full points up to 1 second, none at 5 seconds. Checked from one region, so distance isn't punished.
Drops when the price goes up or the payout wallet changes. An unexplained wallet change is an F.
From real test payments: did we get what was advertised? Not paid-tested yet means C at best.
Proceed
We paid and it delivered, cleanly and reliably.
Proceed
We paid and it delivered, with a caveat.
Caution
Probably works, but we couldn't confirm it yet.
Caution
Doesn't work as listed, but you won't lose money.
Avoid
Costs you money or is unsafe.
A bad response is re-tested about two hours later; only a second failure counts.
Buyer reports trigger our own re-test. Only our paid test changes a grade.
A failed payment on our side, or a request we got wrong, never counts against a seller.
An endpoint that failed a paid check is re-tested daily.
A: we paid and it delivered, cleanly and reliably. B: we paid and it delivered, with a caveat (the response differs from its listing, a value warning, or 80–95% uptime). C: probably works, but we couldn't confirm it (not paid-tested yet, needs its own sign-in, refused our test wallet, customers only, 50–80% uptime, or an unconfirmed wallet change). D: doesn't work as listed, but you won't lose money (an error after payment with no charge, the listing's own example input gets "not found", or it wants a header or input the listing doesn't document). F: costs you money or is unsafe (took the money and failed, a payout-wallet incident, or under 50% uptime). A and B are proceed; C and D are caution; F is avoid.
Uptime counts how often the endpoint returns a valid payment quote over 7 days. Uptime sets the ceiling: an A needs at least 95% uptime and a passed paid test; under 95% the best grade is B, under 80% it's C, and under 50% it's F and avoid, since it fails most calls. These limits apply once there are at least 6 hours of checks. Latency earns full points up to 1 second and none at 5 seconds; we check from one region, so the curve doesn't mark sellers down for distance. Checks that overlap a stall on our side don't count.
Stability drops when the payout wallet or price changes. Each distinct price increase costs 4 points (8 at most), so prices that move back and forth aren't penalized again and again. An unexplained wallet change is F (avoid), since it can mean the endpoint was hijacked.
Delivery comes from real test payments. If we pay, the money is taken, and we get junk back twice in a row, it's F (avoid) until a paid re-test passes. A gateway error when we pay (HTTP 502, 503, or 504) counts as downtime, not junk. Endpoints not yet paid-tested are scored on the other 80 points, marked "not yet paid-tested", and are C at best: A and B mean a real paid test delivered.
What counts when we pay: any 2xx status is a success. A rate limit or firewall block right after payment, and an async "accepted" (HTTP 202) without the result, are neutral, never failures (if the 202 links to the job, we check the link and grade the finished result). A failure the seller refunds on-chain counts as no money lost (D). An empty result list is an honest "no results". A response fails only when it's an error status, empty when the listing promises output, not JSON when JSON is promised, or has none of the fields the seller's own listing describes. A "sign in first" answer (HTTP 401/403) after payment with no money taken means it needs its own sign-in: C, delivery unconfirmed, with a note (the same for "your wallet isn't allowed" or "customers only"). If the refusal asks for a header or input the listing doesn't mention, that's D: it can't be called as listed until the seller documents it or declares a test request. "Not found" (404) for the listing's own example input, or any other error after payment that doesn't collect the money, is D: it doesn't work as listed, but buyers keep their funds. Taking the money and failing is F (avoid). Each paid test sends a fresh request key, so a seller that de-duplicates requests never sees us as a repeat. An endpoint that failed a paid check is re-tested daily, so a fix shows up quickly.
Listing accuracy: a paid response is compared with the schema or example in the seller's own listing. Data wrapped in a data or result field, or a list of the items the listing describes, still counts as delivered. When the data is reshaped compared with the listing (fields nested elsewhere, a list where the listing shows one item, most example fields missing), the grade is capped at B (85) and the verdict stays proceed, with a note telling agents where to read the fields; matching the listing lifts the cap on the next paid check. Minor gaps (an optional field that isn't returned, a content-type label) get a note but don't affect the grade.
Verdicts: proceed (A, B) means a real paid test delivered and the endpoint is reliable. Healthy endpoints that haven't been paid-tested yet are C, caution (delivery not yet confirmed), which our free checks keep current every 30 minutes; agents can still pay them, or require confirmed delivery.
Value checks: on the paid test we already make, we also check that the answer is plausible: it's about what we asked (the symbol, address or URL we sent), its "generated at" time is recent, and a token's USD price is within 10% of the public spot price. A failed value check is a warning with a B cap, never avoid, since automatic checks can misjudge; the next passing paid test lifts it.
Who gets paid-tested: endpoints with the most real payments first, then those too new to grade, then healthy ones not yet tested. A passed paid test stays valid until something material changes (a price increase, or a new payout wallet or network), so we don't re-pay endpoints just because time passed. Endpoints that failed a paid test are re-tested daily. Our budget covers up to $0.01 per call for any endpoint and up to $0.05 for endpoints agents use or that real payments settle to, with at most 3 endpoints per seller per run.
We never fail an endpoint on one try. A bad response is re-tested about two hours later, and only a second failure counts. If an endpoint rejects our request for missing input, that's on us and never counts.
Buyers' agents can report whether a paid call worked. Reports are tips, not votes: when several independent buyers report a problem, we re-test it ourselves, and the grade only changes if our own paid test confirms it.
A failed payment on our side never counts against a seller.
Give every agent its own scoped key, cap what it can spend, and keep a record of every decision you can replay later. Pay monthly by card (renews automatically, cancel anytime), or with USDC via x402 on Base or Solana.
$0
Scores, leaderboard, spending-rule checks, and the MCP server. No account needed. Free API key for higher limits.
$9 / month
For solo builders and vibe coders. 3 agent keys with allowed sellers, per-payment caps, daily and monthly limits, and expiry. Signed receipts. 30-day replayable audit trail. Agent inventory, SDK enforcement, and alerts for payments made outside PayCheck.
$49 / month
Everything in Builder, plus 25 agent keys, human review for anomalies (new wallets, large amounts) with webhook alerts, 1-year audit trail, CSV export, access reviews, temporary limit increases, policy templates, agent risk scores, and agent credentials sellers can verify.
Custom
Everything in Business, plus SSO and SCIM with your identity provider, custom limits, company-wide caps, 2-year audit history, payments outside PayCheck checked every 10 minutes, SIEM streaming, invoiced or usage-based billing, and trials. Talk to us privately.
Start a free 30-day trial, no card See plans and subscribe
Identity and access for agents that pay: see every payment your agents make, even ones that skip PayCheck; our SDK never signs a payment PayCheck denied; and, if you choose, your agents can prove to sellers that they belong to a verified company. All features
How it works: subscribe and you get an owner key. On your account page, create a key for each agent. Before paying, the agent asks Lumière PayCheck and gets allow, deny, or review, with reasons and a signed receipt your wallet can verify. Developers: full guide on GitHub.
Free routes allow 60 requests a minute. A free key raises that to 300. It's emailed to you, no card needed. You can also get a short weekly email: top performers, endpoints to avoid, and wallet changes we caught.
We use your email only to send the key and, if you opt in, the digest. See our privacy policy.
No accounts or API keys. Agents pay per call with x402, the same way they pay any other endpoint.
Free
Score, leaderboard, and spending-rule checks, 60 a minute. GET /v1/score POST /v1/check-payment
$0.005
Score breakdown, current quote, wallet and price history. GET /v1/report
$0.01
Score up to 100 endpoints in one call. POST /v1/score/batch
$0.10
30 days of webhook alerts when an endpoint breaks, changes wallet, or raises its price. POST /v1/watch
Lookups for endpoints we don't monitor return 404 and are never charged. Agents can also connect the MCP server at /mcp.