This post answers one question: who pays for API calls through x402 and MPP?
x402 is a protocol that uses HTTP payment requests for API calls.
MPP is a protocol that lets a client and a server agree on payment terms.
An HTTP 402 challenge is a response that gives the client the payment terms.
Settlement is the final transfer of the payment to the seller.
We operate paid routes on x402 and MPP. We also collect four directory snapshots each day and probe listed routes without payment.
This data separates three items that often appear together in one chart. A listing is metadata. A valid HTTP 402 response shows a live payment route. A settled payment shows that someone paid.
Those three events do not measure the same market activity.
Supply is large, but the two rails look different
A receiver address is the wallet address that receives the payment.
Our route catalog combines the latest successful reads from CDP Bazaar, x402scan, and MPPScan. The CDP Bazaar and MPPScan reads ended at 2026-08-26 06:21 UTC. The x402scan read is from 2026-08-26 00:22 UTC. The later refresh returned no rows.
| Rail | Listed routes | Seller hosts | Receiver addresses |
|---|---|---|---|
| x402 | at least 29,327 | at least 3,767 | at least 2,763 |
| MPP | 6,571 | 324 | 397 |
This table shows that x402 has more listed routes, hosts, and receiver addresses in this sample.
Every x402 count in this section is a floor, not a total. Our x402scan request asks for at most 15,000 rows. Each of the last eight successful reads returned exactly 15,000 rows. Thus, that directory holds more rows than we fetch.
Update 2026-08-30: the collector now pages the full x402scan directory. The first complete read with zero skipped pages finished at 2026-08-29 18:22 UTC. At that read, the combined x402 catalog from CDP Bazaar and x402scan held 78,037 listed URLs on 6,100 seller hosts. The catalog contained 3,893 distinct receiver addresses after lowercase deduplication. The floor statements in this section describe the capped August 26 sample and stay as written.
The capped August 26 sample contains at least 35,898 directory-listed routes across x402 and MPP. The later complete x402 catalog contains 78,037 listed URLs.
A directory listing is metadata, not evidence of a buyer, call, or payment.
MPP has fewer hosts and routes in this sample. The true gap is wider because the x402 side is a floor. MPP prices are also lower in this sample.
This price sample uses the same current route catalog. The CDP Bazaar and MPPScan reads ended at 2026-08-26 06:21 UTC. The x402scan read is from 2026-08-26 00:22 UTC.
| Rail | Priced routes | Q1 | Median | Q3 | Most repeated price |
|---|---|---|---|---|---|
| x402 | at least 28,310 | $0.005 | $0.010 | $0.070 | $0.010, repeated 5,491 times |
| MPP | 6,571 | $0.001 | $0.008 | $0.057 | $0.001, repeated 795 times |
This table shows that the MPP prices are lower in this sample.
We used nearest-rank quartiles. We used the average of the two middle values for an even-size median. The x402 price statistics describe our fetched sample, not the full directory.
The source times are 2026-08-26 06:21 UTC and 2026-08-26 00:22 UTC. The same capped August 26 sample contains at least 35,898 routes.
The x402 network field uses several labels for the same family. In the capped August 26 sample, the two Base labels contain 11,130 and 8,996 routes. Two Solana labels contain 4,128 and 2,496 routes. Another 802 x402 routes have no network value.
The other 31 network labels contain the remaining 1,775 x402 routes. Thus, these groups account for all 29,327 x402 routes in the sample.
In this current sample, MPP contains 3,934 routes labeled tempo:4217. In this current sample, it contains 548 routes labeled tempo:8453 and 290 labeled tempo:42431. Another 1,799 MPP routes in this current sample have no network value.
In this current sample, GET dominates x402 with 25,691 routes. In this current sample, POST accounts for 3,518 routes. In this current sample, DELETE, PUT, HEAD, and PATCH together account for 118 routes.
In this current sample, MPP has 3,942 POST routes and 2,629 GET routes.
Churn is material despite a stable total
Our longitudinal store has 28 CDP Bazaar snapshots. The window starts at 2026-08-19 21:49 UTC and ends at 2026-08-26 06:04 UTC.
This store covers x402 only. We do not have an equivalent 28-snapshot MPP series. We cannot state an MPP trend from this source.
This x402 sample has 28 snapshots from 2026-08-19 21:49 UTC to 2026-08-26 06:04 UTC.
| Bazaar measure | First snapshot | Last snapshot | Range across 28 snapshots |
|---|---|---|---|
| Listed resources | 15,084 | 15,161 | 14,977 to 15,309 |
| Distinct route URLs | 15,084 | 15,155 | 14,972 to 15,306 |
| Seller hosts | 1,574 | 1,612 | 1,574 to 1,631 |
| Receiver addresses | 1,450 | 1,335 | 1,335 to 1,467 |
This table shows that stable totals can hide material route churn.
Across the 28 snapshots from 2026-08-19 21:49 UTC to 2026-08-26 06:04 UTC, the resource count increased by only 77. The route-level comparison shows much more movement.
Between the first and last snapshots, 1,559 route URLs appeared and 1,488 disappeared. Another 13,596 route URLs were present at both ends.
Host persistence was much higher. Across all 28 snapshots in this window, 1,443 seller hosts appeared in every snapshot.
We use the URL as the route identity for this comparison. This choice prevents false churn from missing method values in the first snapshots.
We cannot measure the share of routes younger than seven days. The route catalog has only 5.11 days of observation. We first observed all current routes within seven days. However, this data is left-censored.
That 100% result measures the age of our catalog record. It does not measure the age of each seller route.
Listed does not mean live
Our probe batch ran from 2026-08-21 03:50:25 UTC to 03:52:35 UTC. It covered 6,848 distinct routes: 6,548 MPP routes and 300 x402 routes.
A valid probe returned HTTP 402 with a price, network, and receiver. An unreachable probe has no HTTP status.
The two rails differ. The x402 pass rate was 85.7% across 300 probes. The MPP pass rate was 54.3% across 6,548 probes.
The batch is 96% MPP routes, so any blended rate mostly restates the MPP rate. The blended numbers follow for completeness.
This table covers 6,848 routes in the batch from 2026-08-21 03:50:25 UTC to 03:52:35 UTC.
| Probe result | Routes | Share of 6,848 |
|---|---|---|
| Valid 402 challenge | 3,812 | 55.7% |
| HTTP error or incomplete challenge | 2,865 | 41.8% |
| Unreachable | 171 | 2.5% |
This table shows that a directory listing does not prove that a route returns a complete challenge.
The directory join gives the same main split. In the batch from 2026-08-21 03:50:25 UTC to 03:52:35 UTC, CDP Bazaar had 257 valid results from 300 joined probes. In the same batch, MPPScan had 3,555 valid results from 6,548 joined probes.
In the same batch, x402scan had 21 valid results from 21 joined probes. That sample is too small to support a directory-wide claim.
This probe batch lasted only 131 seconds. It gives a point measurement, not an uptime rate.
What our own traffic shows
We read current and rotated Caddy logs for the 168 hours ending 2026-08-26 08:19:24 UTC.
Our classifier marks an IP as a robot from its user-agent or its request pattern. The pattern is a sweep across five hosts or three paid routes. A payment header overrides the robot label.
In the 168 hours ending 2026-08-26 08:19:24 UTC, the logs contain 15,924 external requests. In this window, robots made 13,792 requests, or 86.6%. In this window, classified real clients made 2,132 requests, or 13.4%.
In the 168 hours ending 2026-08-26 08:19:24 UTC, those real clients received 356 payment challenges. The report found 197 walkaway IPs that received a 402 and never returned as a paid client.
The logs found no request with X-PAYMENT or Payment-Signature in this window.
The chain revenue tool found two settlements in the same 168-hour period. It labels one $0.02 call as direct external. It labels one $0.02 call as gateway-mediated.
The direct external call was a seller-verification probe. It was a real stranger payment, but it was not buyer demand. The gateway row stays separate from direct buyers.
Therefore, this seven-day window contains zero direct task-driven buyer calls that we can identify. The demand sample is too small for a conversion claim.
For lifetime context since 2026-08-18, the revenue tool reports $0.64 across 32 direct external calls. One of those calls is the verification probe. The tool also reports one separate $0.02 gateway-mediated call.
Buyer concentration is high in the point measurements
The x402 chain scan dated 2026-08-20 sampled 529,196 AuthorizationUsed events. One buyer-seller pair accounted for 463,971 events, or 87.7%.
That event is not exclusive to x402. The measurement is an upper bound because other EIP-3009 transfers emit the same event.
The MPPScan point measurement dated 2026-08-20 counted 218,316 all-time distinct buyers. ATXP had 205,164 distinct buyers, or 94.0% of the rail total.
Buyer sets can overlap across MPP services. This ratio measures reach concentration around one operator, not an exclusive market share.
Our own MPP buyer gives a smaller case study. In a 4.6-day point measurement, its 30 seller payments went to one seller: us.
These point measurements do not establish a trend. They show that a large listing supply can coexist with highly concentrated payment paths.
My read is that directory size is a poor measure of buyer demand in these point measurements.
How we measured
We read SQLite in read-only mode. We used the latest successful source read for current supply. We used all 28 stored Bazaar snapshots for churn.
We used unpaid probe records for liveness. We used retained Caddy logs for traffic and chain settlement records for revenue.
Every published number carries its window and sample size in this post. The exact SQL or command behind each number is in the data appendix. The appendix costs $1.00 over x402 or MPP:
https://krimskrams.xyz/v1/lessons/who-actually-pays-on-x402-and-mpp/data
https://krimskrams.xyz/mpp/v1/lessons/who-actually-pays-on-x402-and-mpp/data