EN 9 min read
The Machines Are Paying Each Other (I Made $8.07)
The idea arrived at 1 AM, the way most of mine do, in the middle of taking apart something that was not built to be taken apart.
I was reverse engineering a trading terminal. One of those screens full of charts and moving numbers that traders sit in front of all day. What makes this particular one worth something is that it does not show you one market: it merges the live feeds of more than twenty exchanges into a single picture of who is buying, who is selling, where the money is stacked up and who has just been wiped out. I am not going to name it.
Reverse engineering means working out how something operates from the outside, with no documentation and no permission. In this case it meant taking apart the stream of data flowing between that platform and my browser, which is compressed into a binary format deliberately unpleasant to read, and rebuilding it piece by piece until I could receive the same feed the terminal was receiving. Weeks of it, at night, because that is when nothing interrupts.
What came out of it was a bot. Then the bot grew rules, then a memory, then the ability to decide on its own, and at some point it stopped being a script and started being an agent. That word gets thrown around, so here is the practical difference: a script does what you told it to do, an agent works out what to do next. It had better discipline than me. No panic buying, no revenge trades, just execution.
But the bot was not the interesting part. The byproduct was.
I looked at what had piled up and realised I was sitting on a dataset. Ten years of history at one minute resolution, on the five biggest pairs, ten exchanges each. Not just prices: buying volume separated from selling volume, how much borrowed money is riding on each market, every forced liquidation, the fee traders pay each other to hold a position, and how thick the queue of orders is on each side of the price. This is the expensive stuff. It does not get published for free, because collecting it is the hard part, and because it describes what is happening rather than what already happened. In short, around 3TB of data.
And the thought that followed was not "I should trade on this." It was: this data has a buyer, and the buyer is not a person.
The natural buyer is another agent, doing exactly what mine was doing. And there are thousands of people out there running agents that would want it. Not one customer. Thousands of machines.
Then the problem, immediately. How do I sell it to them?
Machines Cannot Sign Up
Everything on the internet is sold to people who click. You create an account, confirm an email, choose a plan, type in a card, wait to be approved, and receive a key: a long string of characters that proves you are you, which you then paste into your software.
An agent cannot do any of that. I mean it could, but that's just not practical. It can chew through a thousand price updates a second and it cannot fill in a signup form. The bottleneck was never intelligence. It was access, and access is built entirely for humans with hands.
What was needed was a vending machine. The agent walks up, sees the price, pays, takes the thing, leaves. Nobody gets introduced, nobody signs anything.
The Thing I Remembered
Months earlier I had seen Coinbase release something called x402.
Every time your browser loads a page it gets back a numeric code. 404 means the page does not exist. You have seen that one. There is another code, 402, which means Payment Required, and it has been sitting in the rulebook of the web since 1997 with a note next to it: reserved for future use. Twenty nine years, an empty room in the house, nobody ever used it.
x402 finally uses it. The exchange is almost insultingly simple. A program asks for something. Instead of "here you go" or "you are not allowed", the answer is: 402, this costs one cent, send it here. The program pays, asks again with the receipt attached, and gets what it asked for. No account, no key, no plan, no monthly minimum. Payment becomes part of the request, the way it works with a vending machine and not the way it works with a subscription.
That was the missing half of my problem. And a second thought landed on top of it.
This is shaped exactly like MCP. MCP is the standard that lets AI assistants plug into outside tools, and the moment it appeared, directories appeared with it. Registries, indexes, lists of which tools exist and what they do. Dozens of them. That layer is how anything gets found at all.
So where was it for x402?
A List Is Not a Registry
I went looking. There were a couple of attempts. One had seventeen thousand entries with nothing checked. One was copying names off GitHub. Another one had links that did not even work. And every single one of them was missing the field that actually matters.
Whether the thing is switched on.
Not what a service says it does. Whether it answers right now. An agent about to spend real money on a service has exactly one question before it commits: is this alive, and will it deliver when I pay. None of them could answer it. They were lists of names. A list of names is not a registry, in the same way a phone book with no working numbers in it is not a phone book.
That is when it hit me, alone, at my desk, at an hour with nobody to tell. This is not a small thing. Every machine that wants to buy anything from another machine has to walk through this layer, and the layer does not exist yet.
I registered three domains that same night, knowing nothing about what I was going to build. The registration record says 22:57 UTC on April 3, which is 1 AM where I live. x402-list.com is the one I went with.
The Part I Found Out Afterwards
Thirty six hours before I bought that domain, the Linux Foundation had announced that it was taking x402 under its wing, with twenty two organizations signing on at launch: AWS, Google, Microsoft, Cloudflare, Visa, Mastercard, American Express, Stripe, Shopify, Circle, the Solana Foundation, Polygon Labs and a handful more big tech names.
For anyone who does not follow this stuff: the Linux Foundation is where the internet's plumbing goes to become official. It is the least exciting, most consequential kind of announcement there is. When Visa and Mastercard and AWS put their names on the same piece of infrastructure, that infrastructure is no longer a hobby.
I had no idea. None. I was not following the news, I was following my own dead end in the middle of the night, and I landed on the same conclusion the biggest companies on the planet had signed off on two days earlier.
It was not a great feeling, exactly. More like looking up and seeing that the path you thought you were cutting through the woods is scheduled to become a motorway.
I am not claiming foresight. I am claiming presence. The second one you can actually repeat.
Built, Then Left Alone
The first version was the minimum that could be honest. Black and white, almost no code running in the browser, blazingly fast, eighteen services checked by hand.
It had two faces from day one. The website, for people. And the same information in a format a program can read without a human in the loop, which is the part that actually matters. The website was the marketing. The machine-readable version was the product.
Then I left it there for months. It sat, quietly checking itself, while I worked on other things.
I picked it back up in July and did not stop.
What It Is Now
The directory holds 440 services and 1,941 individual functions you can pay for, spread across five different blockchains: Base (422 services), Solana (160), Polygon (40), Arbitrum (30), Avalanche (4). That is 498 pages on the site, 447 of which exist purely to describe one service each.
The thing that started all of this, whether a service is actually switched on, is still the spine. Every service gets called, on a loop, roughly 1,760 checks an hour. Average availability over the last 24 hours: 93.7%. Average response time: 550 milliseconds. Not what they claim. What we measured.
Built on top of that, mostly in July:
- A scoring engine. Six mechanical checks plus a written summary produced by an AI model, re-run for every service every six hours. 17,050 assessments since July 13, covering all 440.
- Change detection. Every time we call a service we take a fingerprint of its payment terms. If a service quietly changes the account it collects money into, or its price, or how it expects to be paid, that becomes a public event with a date on it. Swapping the destination account under a paying customer is the one scam an agent cannot notice on its own, because it has nothing to compare against. We keep the receipts, so it becomes visible.
- Real payment data. Because these payments happen on public blockchains, every one of them leaves a permanent, verifiable trace that nobody can edit and nobody has to grant me access to. 22.1 million of those payment records since January 1, matched back to the services that earned them.
- Doors built for machines. A public interface programs can query directly, a plug-in that drops the whole directory into AI assistants, a plain text file written specifically so that models like ChatGPT can read and quote the data correctly, a feed, an embeddable widget, a status badge a service can display on its own page, and a dated archive of every snapshot so anyone citing a number can point at exactly which one.
Agent-first is not a slogan here, it is the traffic. In the week of July 20 the site served 74,977 automated requests from around 1,200 different programs. Human visitors in the same week: 257.
The website exists because people expect a website. The thing being used is the machine-readable side, as I thought it would be.
The Curve
Growth was not linear and it was not organic in the polite sense of the word. Eighteen services at launch. Accumulation through May and June from people submitting their own. Then one week in July where I stopped waiting to be submitted to and started finding services myself, verifying every one against the public payment record: 145, then 194, then 362, then 440. 78 new listings in the last seven days. 363 in the last thirty.
Traffic did the same. Monthly visits from people: 999 in April, 690 in May, 1,823 in June, 9,657 so far in July. Automated requests went from a few thousand a week in June to nearly 75,000. Over the last thirty days: 271,188 requests from 4,527 different programs.
What the Money Is Doing
Since every payment leaves a public trace, I can see well past my own traffic. Monthly totals across the services I track, and how many distinct buyers were behind them:
- January: $9,390 from 728 buyers
- February: $32,253 from 1,614
- March: $49,361 from 2,164
- April: $17,452 from 2,252
- May: $18,914 from 3,036
- June: $130,545 from 4,350
- July, still running: $166,194 from 5,299
The caveat before the conclusions: part of that curve is me. The more services I track, the more money becomes visible. This is a floor of what I can see, not a census of the whole market.
Three things in the shape are real anyway.
The number of purchases is growing much faster than the money. In January the average payment was worth about 4.3 cents. In July it is about 1.7. The typical listed price is one cent. That is the fingerprint of machines genuinely buying things: enormous numbers of tiny purchases, not a handful of big transfers. Whatever else is uncertain, the "machines paying each other in fractions of a cent" part is no longer theoretical.
The money is savagely concentrated. Over the last thirty days the listed services took in $180,736 between them, from 5,578 different buyers, and the ten biggest services accounted for 97.5% of it. Everything else is dividing what is left of a rounding error.
The hard part is being found, not being built. Making one of these services is now a weekend. Getting an agent to find it, trust it and pay it is the entire problem. Another operator publishes their own funnel: over two thousand programs looked, nine hundred started a payment, one finished. Supply is sprinting ahead of anything resembling demand.
My Own Number
Since I switched on the paid parts of the site, x402-list has collected 21 payments totalling $8.07. Fourteen fees for resubmitting a listing, three paid suggestions, three assessments bought on demand, one metered request.
Eight dollars and seven cents.
I could dress that up. Being listed is free on purpose, the paid parts went live weeks ago rather than in April, and the prices are deliberately tiny: fifty cents, ten cents, one cent, twenty five cents. All true, and none of it moves the number. If I am going to publish the figure that says the tail earns nothing, the honest thing is to say out loud that today I am the tail.
More paid pieces are being built, and the data already goes out under a licence that requires anyone using it to credit the source, because in a market this young being quoted is worth more than being paid. Ask me again after the next quarter.
So why keep going.
Because holding this position costs me almost nothing, and it cannot be bought twice. Directories are winner heavy: everyone converges on whatever answers fastest and lies least, and every model, document or agent that quotes you makes it more expensive to switch away from you. The volume is real, the number of purchases is climbing, and the money is currently pooled at the top of a market that is four months old.
The bot needed data. The data was locked behind forms. A protocol removed the forms. Somebody had to write down what came out from behind them, in a format built for the things doing the reading, measuring the one thing nobody else was measuring.
I got that part right at 1 AM, before I knew there was a Foundation. The invoice can wait.