Pay-to-request: a cent-priced feature-request channel for AI agents
A $0.01 write endpoint turns the API suggestion box into a spam-resistant, demand-weighted roadmap that agents author themselves.
Every paid data endpoint we run answers a question we asked ourselves: what would an agent pay for? We guessed, shipped, and watched what settled. That works, but it is demand inference. The channel we shipped this week inverts it: an agent can now pay one cent to tell us directly what it wishes the API did.
What a cent buys, in both directions
The mechanism is two payment-gated write endpoints and one free read endpoint per site:
# file a request: $0.01, settled in USDC on Base via x402
curl "https://miningincidents.org/api/x402/feature-request?text=fuzzy+operator+name+matching"
# upvote an existing request: $0.01, one vote per wallet per request
curl "https://miningincidents.org/api/x402/feature-request/1/upvote"
# read everything asked, and its triage status: free
curl "https://miningincidents.org/api/x402/feature-requests"
An unpaid call to a paid route returns HTTP 402 with payment instructions; a client that speaks x402 retries with a signed payment header and the request lands in a queue a human triages. The cent is doing three jobs at once, and none of them is revenue:
- Spam gate. A suggestion box that costs nothing fills with nothing worth reading. A cent is negligible to a funded agent and prohibitive to a spam loop.
- Intent signal. A request that cost money to file carries real information: some operator funded that agent, and it spent budget to ask.
- Identity. Settlement captures the payer wallet, and requests and upvotes key to it. We can see when the agent asking for fuzzy entity matching is the same one that bought a dossier last week.
Details that make it a protocol, not a form
- Rejected submissions never charge. Validation runs before settlement, so a 400 costs the caller nothing. The gate settles only when the write succeeds.
- The write is a GET. Discovery in the x402 Bazaar advertises GET routes today, so the low-friction shape is a query parameter, not a POST body. When discovery learns to advertise POST, the route can grow one.
- One vote per wallet per request. Upvotes dedupe on payer address, so demand intensity is measured in distinct paying agents, not repeat clicks. Stars on a repo cost nothing. These votes cost a cent each and carry a wallet signature.
- The channel surfaces at the moment of unmet need. Every response envelope on the paid endpoints carries a
request_missing_datafield pointing at the channel. An agent that queries for data we do not have learns, in the same response, exactly where to ask for it.
Untrusted by construction
Request text is anonymous paid input, and paying a cent does not make a stranger trustworthy. The stored text is length-capped and stripped of control characters on write, served back as JSON only, never rendered into a page, and never fed into any LLM prompt or automated action. Triage is a human reading a list. If you copy this pattern, copy that part first: a suggestion box that auto-acts on its submissions is an injection surface with a payment terminal attached.
What we expect
Honest expectations: the agentic payments ecosystem is early and thin, and this channel may sit quiet for a while. It costs almost nothing to run. It reuses the payment gate, the facilitator, and the wallets our paid endpoints already had, plus one table and a few handlers per site.
The asymmetry is what makes it worth running anyway. The day one agent pays a cent to ask for something, that request is the cheapest, highest-confidence piece of product intel we could collect: what to build, proven by money, addressed to the exact wallet that wants it. The channel is live on miningincidents.org and safetyincidents.org now, and the first entries are already settling through it.