pro-api.coinmarketcap.comGET /x402/v3/cryptocurrency/quotes/latestLive market quotes by symbol. One flat cent per call.
If your agent looks up a coin by ticker, it is not asking a precise question. I paid a cent a time to count how many separate assets claim the same symbol.
PEPE returns 32 assets. BTC returns 13, including Satoshi Pumpomoto and HarryPotterTrumpSonic100Inu. SOL returns 8, and Solana is not first in the list.
MORPHO returns 2, and the impostor has held that ticker since December 2022, two years before the real Morpho existed. Older listing, wrong asset.
Query by the provider's numeric id, or drop anything unranked and priceless before you use the result. An agent that takes the first row buys the wrong thing and never notices.
Receipts and detailclick to hide
What I senttickers picked to span meme-heavy and quality names
GET https://pro-api.coinmarketcap.com/x402/v3/cryptocurrency/quotes/latest
?symbol=MORPHO&convert=USD
?symbol=BTC,ETH,SOL,XRP,DOGE,ADA,AVAX,LINK,DOT,LTC,
BCH,XLM,ATOM,UNI,AAVE,MKR,CRV,SNX,COMP,PEPE
$0.01 per call, USDC on Base
Receipts: Measured 2026-08-05 from paid calls to pro-api.coinmarketcap.com (x402, $0.01 each on Base). Counts are assets returned per symbol in a single response: 20 tickers returned 115 assets, 56 of them unranked.
Payment #02The ten billion dollar bitcoin quote that wasn't
pro-api.coinmarketcap.comGET /x402/v3/cryptocurrency/quotes/latestLive market quotes for any listed cryptocurrency. One flat cent per call, no matter how many coins you ask for.
I found what looked like the most expensive thing in the agent economy: a CoinMarketCap price quote listed at ten billion dollars. I was about to grade it F. Then I paid it, and it charged one cent.
The ten billion was my bug, not their price. Six of the seven payment options are 18-decimal tokens on BNB Chain, and my parser divided everything by a million. A one-cent quote read as $10,000,000,000.
The cent is flat, not per coin. One symbol or twenty, the quote never moves, and twenty came back with full market cap, supply and 90-day change on each.
What I did not expect: a symbol is not a coin. BTC returns 13 assets claiming that ticker, PEPE returns 32. Ask for SOL, take the first result, and you get Solcoin instead of Solana. Query by id or filter on rank.
What I sentsymbols picked by me, not requested by anyone
GET https://pro-api.coinmarketcap.com/x402/v3/cryptocurrency/quotes/latest
?symbol=BTC # call 1, the one graded here
?symbol=BTC,ETH,SOL,XRP,DOGE, # call 2, the flat-price test
ADA,AVAX,LINK,DOT,LTC,
BCH,XLM,ATOM,UNI,AAVE,
MKR,CRV,SNX,COMP,PEPE
no request body · spend capped at $0.01 per call
Look at all seven options before you judge the price. The amount is an integer in the asset's own decimals, so the same number means different money depending on the token.
# 1. read the paywall, free, and decode every option
curl -sD - -o /dev/null \
'https://pro-api.coinmarketcap.com/x402/v3/cryptocurrency/quotes/latest?symbol=BTC' \
| grep -i '^payment-required:' | cut -d' ' -f2 | base64 -d | jq '.accepts[] | {amount, asset, network}'
# -> 7 options. USDC on Base (6dp) is 10000 = $0.01.
# BNB-chain tokens (18dp) show 10000000000000000, which is also $0.01.
# 2. pay it, capping what you will spend
npx agentcash@latest fetch \
'https://pro-api.coinmarketcap.com/x402/v3/cryptocurrency/quotes/latest?symbol=BTC' \
--max-amount 0.01
Receipts: Two payments from wallet 0xC533Bf5268A2F64aDDe58dcE380651f70Aa92D7A on 2026-08-05, both settled on Base and verifiable on Basescan: one symbol at 21:11 UTC, twenty symbols at 21:19 UTC, $0.01 each. Quote options read from the live payment-required header the same day.
stablememes.devPOST /api/automemeAuto-captioned meme. You send one line of text, it picks a template from the top 2,048 and captions it.
I gave an agent a wallet and told it to buy something. It found a meme API, read the price off the paywall, signed a payment, and got back a JPEG. No account, no API key, no card.
I sent one line of input: "ratatata is going to war". The API chose its own template out of the top 2,048. I did not pick Change My Mind.
Quoted a cent, charged a cent. My balance moved 7.397111 to 7.387111, exactly as advertised.
That is rarer than it should be. stablegiftcards.dev quotes a flat $25.00 whether you ask for a $5 gift card or a $1 phone top-up, and re-probing it today it still wants $500.00 for a malformed body.
Scale check: it takes 77 of these memes to match what the median x402 seller earns in a month.
What I senttext mine, watermark left at its default
POST https://stablememes.dev/api/automeme
{"text": "ratatata is going to war", "watermark": true}
# watermark:true is the default and costs $0.01
# watermark:false costs $0.02
What one cent buys. Template chosen by the API, not by me.
Any wallet with a couple of cents of USDC on Base can make this exact call. No account, no API key. The endpoint quotes $0.01 with the watermark left on, $0.02 without.
# 1. see the paywall and its price, free
curl -s -X POST https://stablememes.dev/api/automeme \
-H 'Content-Type: application/json' \
-d '{"text":"ratatata is going to war","watermark":true}'
# -> 402, quoting 10000 (0.01 USDC) to 0x3F17AE7D36d77Ca0b8194144F5763283D17E7955 on Base
# 2. pay it and get the meme back
npx agentcash@latest fetch https://stablememes.dev/api/automeme \
--method POST \
--body '{"text":"ratatata is going to war","watermark":true}'
# -> {"url":"...jpg","page_url":"..."} plus the settlement tx hash
Receipts: Paid 2026-08-05 19:32 UTC from wallet 0xC533Bf5268A2F64aDDe58dcE380651f70Aa92D7A, verifiable on Base. Median-seller figure from the x402scan 30d seller pull, as of 2026-08-04.
Cloudflare announced Wallets. AI agents aren't equipped to make purchases right now. They have no native way to pay for APIs, which anyone running Claude Code sees constantly: it hits a paywall, stalls, and kicks back to you to enter a card or start a subscription.
Agents do not have a stable identifier to sign up for an API, and they do not have a native way to pay for APIs.
Cloudflare, Introducing Cloudflare Wallets
Cloudflare is building an ecosystem where agents manage their own wallets inside human-set guardrails and transact with each other. I imagine this starts with APIs and inference calls, then expands from there.
USDC uses 6 decimals. Most BNB Chain tokens use 18. Divide every quote by a million and an 18-decimal one-cent charge reads as ten billion dollars.
What to do: Read the asset address, look up its decimals, then convert. Never assume six.
Cost me a nearly-published accusation against CoinMarketCap. 38% of the 27,099 priced payment options in the public registry use an asset that isn't six-decimal USDC.
A single 402 can offer many payment options across different chains and tokens. Take the first one and you may sign for the wrong asset on the wrong chain.
What to do: Decode every entry in accepts[] and pick the one matching what your wallet actually holds. 39% of listed resources offer more than one.
CoinMarketCap offers seven options across three chains, all worth the same cent.
It can be in the response body as accepts[], in a payment-required header as base64 JSON, or in WWW-Authenticate, which itself has two formats. Parse only the body and a large share of the market looks broken.
What to do: Check all three, and lowercase your header keys because casing varies by server.
Body-only parsing produced a false headline that 56% of endpoints were unpayable. The real figure was near zero.
Ask a market data API for BTC and you get 13 assets claiming that ticker. PEPE returns 32. Ask for SOL, take the first result, and you get Solcoin instead of Solana.
What to do: Query by the provider's numeric id, or filter on rank and drop anything unranked and priceless.
20 tickers returned 115 assets, 56 of them unranked. MORPHO returns 2, and the impostor has squatted the ticker since 2022, two years before the real one existed.
Some services mint a fresh receiving address per request. Compared against a registry entry it looks like a hijacked endpoint.
What to do: Probe the same endpoint twice. If the address changes between calls it is routing, not drift. Only a stable address that differs from the registry is worth flagging.
Nearly published a false payment-address warning about Tavily, which issues a new address every call.
Listings that share a payment wallet are the same business. Count them separately and you multiply both the size of the market and any revenue you attribute.
What to do: Group services by payment address before counting anything.
One wallet sits behind 148 listings, 77 of them subdomains of a single company. Another holds 88, a third holds 55.
Some endpoints charge a flat fee regardless of payload, which cuts both ways: generous on bulk requests, terrible on small ones.
What to do: Quote the smallest and largest request you would realistically make and compare before committing.
One market data endpoint charges the same cent for one coin or twenty. A gift card endpoint quotes a flat $25.00 whether you want a $5 card or a $1 top-up, and $500.00 for a malformed body.
A service can return a payment demand for a URL that does not exist, because the paywall fires before anything checks whether there is a product behind it.
What to do: Before trusting a seller, request a random path that cannot exist. If it asks for money, be careful.