Last week we shipped a browser playground at signalfuse.co/play — twenty-five free API calls per day, no wallet, no signup. It is the least clever thing we have built in months, and we should have built it months ago.
The agent-native bet
We built signalfuse.co on x402, an HTTP payment protocol designed for autonomous code. Every paid endpoint returns a 402 response with the price in USDC. The client signs an EIP-712 authorization, sends the payment, and the API returns the data. No API keys. No account system. No rate-limit accounting. No SaaS billing layer.
For an agent, this is correct. An LLM agent with a Base wallet can hit the API on its first call with no engineering required. The wallet is the identity. The payment is the auth. The chain is the audit log. The same thirty lines of client code that handle the first paid call handle the millionth. We watched paying agents come in through Fetch.ai listings and MCP catalogs and do exactly this — show up, pay, consume, repeat.
For humans evaluating whether the API was any good before they wired it into their own agent, x402 was a moat we had built around ourselves.
The funnel that wasn't a funnel
Every week we ship distribution. MCP listings on Glama and the official registry. Five paid agents on Fetch.ai mainnet. PRs into awesome-mcp-servers. Twitter posts. Real visitor traffic — hundreds per day, thousands of requests behind the paywall.
The funnel looked like this. Visitors arrived. They read the docs. They saw "to call this endpoint, wire up an x402 client and a Base wallet with USDC." They closed the tab. The few that did continue were already crypto-native — they had a wallet, they had USDC, they had wired an x402 client to something before. Everyone else, the much larger pool of curious developers who would have happily integrated us into a future agent, never made it past step zero.
The agents that paid, paid quickly. Everyone else bounced silently.
The setup tax
To try a $0.001 endpoint on signalfuse.co before we shipped the playground, a curious developer had to:
- Pick a wallet that supports Base mainnet. Coinbase Smart Wallet, MetaMask with Base added, any Base-compatible wallet. Five to fifteen minutes for someone new to crypto. Thirty seconds for someone who already runs one.
- Acquire USDC on Base. Bridge from another chain, buy through Coinbase, or use a fiat on-ramp. The minimum useful amount is around a dollar. Five to thirty minutes, plus an arbitrary bridge wait.
- Install an x402 client library.
x402-fetch,x402-axios, the Coinbase TypeScript SDK, the Anthropic Python helper. Five to fifteen minutes to read enough docs to pick the right one. - Write a small script that signs the 402 challenge and re-fires the request. Ten to thirty minutes depending on stack familiarity.
Total: twenty-five to ninety minutes of setup to evaluate $0.001 worth of API surface.
This is the right shape for an autonomous agent. The agent has a wallet — it always did. The agent has bridged USDC because that's the unit of account in its economy. The x402 client is part of its toolchain. The setup cost was paid once, at the agent's creation. The cost amortizes over millions of calls.
It is wrong, badly wrong, for a human who is still deciding. Humans are not in steady state. They are evaluating. They evaluate by trying things in two minutes, not by setting up wallets in two hours.
What we shipped
The playground is one page at /play. Twenty-five free calls per IP per day. No signup. No wallet. No email. Cloudflare Turnstile gates the mint to keep bots out. The mint endpoint issues a credit token bound to a synthetic-wallet sentinel — server-side, the playground token behaves identically to a real wallet-backed token, and every paid endpoint accepts it the same way.
We added human-readable response cards to each endpoint. The fused signal endpoint shows the call, the confidence, the contributing sources, and a one-line rationale. The macro regime endpoint shows the regime, the classification, the most recent update timestamp. The arena endpoints show a matrix of strategies × symbols, the cells that fired, the cells that held. The raw JSON is one click away in a collapsible details block, for the reader who actually wants it.
We added /play as the new primary CTA on the homepage, ahead of the live leaderboard. We added a gold inline link in the docs lead. We extended the 402 responses to include a third onboarding option pointing at /play — an autonomous agent that hits a paywall on its first call now sees three paths: wire a wallet, claim a wallet-bound trial token, or open the playground if there's a human in the loop.
It took two days of focused work.
What it changes (and what we expect)
This post is being written within forty-eight hours of shipping. We do not yet have conversion data. What we expect:
The funnel becomes a funnel. Curious developer arrives at signalfuse.co, sees "try in browser," runs four or five endpoints in two minutes, decides whether the API is worth wiring into their agent. The decision happens before any setup cost.
The wallet-trial path becomes the obvious upsell. The playground caps at twenty-five calls a day per IP — enough to evaluate, not enough to build a product. The wallet-bound trial (five free calls bound to a real wallet) is the natural next step. A developer who liked the playground returns with a wallet, claims a wallet-bound token, and the path to per-call x402 payment is now one short step away.
Agents in the loop still pay. Nothing about the playground changes the agent-native primitives. An autonomous agent hitting signalfuse.co still authenticates with a wallet, still pays per call in USDC, still posts an on-chain transaction. The playground is for humans only — IP-rate-limited, Turnstile-gated, capped daily. The two paths coexist without compromising each other.
We'll know in thirty days whether any of this is right. If conversions move, we'll show the numbers. If they don't, we'll show those numbers too.
The lesson, if there is one
Crypto-native primitives optimize for one audience and disqualify another. When you build for the agent economy, you are explicitly optimizing for autonomous code — code that has a wallet because it was built that way from the start. The trade-off is that the humans evaluating whether to build that code, fund that code, integrate that code, are seeing your product through the lens of a payment system they cannot easily exercise.
You can pretend this is fine. "Our customers are agents. The humans are not the target." It is the move most x402 vendors are making right now. We tried it for two months and watched it not work.
The alternative is a translator. The translator does not betray the vision. It acknowledges that humans evaluate before they automate, and that the path from evaluation to automation has to be visible from the evaluation step. A wallet-free playground with twenty-five calls a day is not a SaaS pivot — it is a sample at the storefront door. The agents do not need it. The humans use it to decide whether to bring the agents in the door at all.
"You can pretend the humans are not the target. We tried that for two months. We watched it not work."
The mechanics worth stealing
If you are building on x402 and the conversion ladder looks familiar — visits up, paying customers flat — here is what we'd recommend without overthinking it.
- One IP-rate-limited mint per day. Twenty-five calls is enough to evaluate, not enough to abuse. Cloudflare Turnstile in front of the mint handles the bot floor for free.
- Synthetic-wallet sentinels. Issue playground tokens that flow through the same auth code as real wallet-backed tokens. The pretend-wallet pattern keeps the endpoint code identical between playground and production — no special-case branches, no surprise behavior at the seam.
- Human-readable response formatters. Don't make a human read JSON to evaluate. The same endpoint can return raw JSON for agents and a rendered verdict card for the human in the browser. The decision-to-integrate is faster when the value is legible at a glance.
- Surface it in the 402 body. When an agent hits the paywall, add the playground URL to the response. The agent-in-the-loop pattern (some calls automated, a human supervising) is real — give the supervising human a path back to evaluation.
- Don't break the agent path. The playground is additive, not a replacement. Wallet-backed customers continue paying per call. The two flows coexist in the same auth layer, the same rate limiter, the same endpoint code.
None of this is novel. All of it is overdue.