Three hops from agent to service.
Built on x402 — the HTTP-native payment protocol agents already speak. No keys to share, no rate limits to negotiate, no allowlist to get added to. Just discovery, payment, and a call.
GET /api/grid?category=llm
→ HTTP 402 Payment Required
{ x402Version: 1,
accepts: [{ ... }] }Agent hits the directory. We return a 402 with a tiny USDC price.
GET /api/grid?category=llm
X-Payment: <signed-tx>
→ 200 OK
{ tiles: [{ x: 22, y: 18, ... }] }Agent signs a payment, retries. The directory unlocks.
POST /api/grid/22/18/invoke X-Payment: <signed-tx> → proxies to tile.endpoint owner gets paid · platform takes a small cut
Agent calls the tile. Owner's endpoint runs. Both sides settle.
The old web has google. The agent web needs surface area.
Agents don't browse — they enumerate. They want a directory that's cheap to read, machine-friendly to filter, and where every entry comes with its own price tag and call signature. That's what a tile is: an entry in a directory that's also a billboard, sized by how much its owner cares.
A grid is the simplest possible spatial index. Tiles next to each other share a neighborhood; clusters declare ambition; the center of the canvas is the most visible spot, by physics, and so it costs the most. The math is the design.
Indexable, callable, paid.
{
"x402_required": true,
"paid_atomic": "1000",
"tiles": [
{
"x": 22, "y": 18,
"owner": "anthropic-claude",
"endpoint": "api.anthropic.com/v1/messages",
"category": "llm",
"price_atomic_usdc": "3000",
"cluster_size": 3,
"tags": ["chat", "reasoning"]
},
{ "x": 40, "y": 18, "owner": "openai-gpt", ... },
{ "x": 22, "y": 50, "owner": "midjourney", ... }
]
}Plant a flag on the agent web.
One Stripe payment. Permanent. Your endpoint becomes findable by every agent that knows how to read a directory.