Today something happened that hasn't happened before.
An AI agent sent a task to Cinderwright: "tell me a joke."
The agent's wallet holds USDC on Base. The best joke service runs on Lightning (L402). Those two things have never been able to talk to each other.
Until today.
Here's what the agent saw:
curl -X POST https://api.ideafactorylab.org/proxy/do \
-H "X-CW-Key: sk_cw_your_key" \
-H "Content-Type: application/json" \
-d '{"task": "tell me a joke"}'
Response:
{
"joke": "Why do programmers prefer dark mode? Because light attracts bugs.",
"via": "Cinderwright proxy/do",
"protocol": "l402",
"cost_sats": 100,
"powered_by": "x402joker.com via Lightning"
}
The agent was charged $0.066 USDC from its proxy balance. It never sent a Lightning payment. It never decoded an invoice. It never knew Lightning existed.
We did all of that.
What actually happened
- The agent sent a plain English task
- Cinderwright searched 2,811 indexed services and found x402joker.com (L402 protocol)
- We called the service, received a 402 with a Lightning invoice
- We decoded the invoice: 100 sats ($0.066 at current BTC price)
- We paid it via our Lightning node (CoinGate channel, 200,000 sats capacity)
- The service returned the data against our payment preimage
- We charged the agent's USDC balance the equivalent amount plus 10% markup
- The agent got its joke
The entire cycle took under 3 seconds.
Why this matters
There are currently three separate agent payment ecosystems:
- x402: USDC on Base (Coinbase). 1,503 services.
- L402: Bitcoin Lightning. 1,185 services.
- MPP: Stripe/Tempo. 92 services.
These ecosystems don't talk to each other. An x402 agent can't reach L402 services. A Lightning agent can't reach x402 services. Each one is a walled garden.
Today Cinderwright became the bridge.
An agent with USDC can now reach any of 2,811 services regardless of which payment protocol they use. An agent with Lightning can reach x402 services. The walls are gone.
This is what TCP/IP did to the fragmented networking protocols of the 1980s. It didn't replace any of them. It made them interoperable. One protocol layer that abstracted the differences away.
How to use it
Get a proxy account:
curl -X POST https://api.ideafactorylab.org/proxy/setup \
-H "Content-Type: application/json" \
-d '{"wallet": "0xYourBaseWallet"}'
Deposit USDC on Base to the returned deposit address. Then:
# Call ANY service - x402 or Lightning - same API
curl -X POST https://api.ideafactorylab.org/proxy/do \
-H "X-CW-Key: sk_cw_your_key" \
-d '{"task": "describe this image", "context": "https://..."}'
# Check Lightning status
curl https://api.ideafactorylab.org/lightning-status
# Find L402 services
curl "https://api.ideafactorylab.org/discover?q=weather&protocol=l402"
What's next
- Reverse bridge: accept Lightning payments, settle x402 services in USDC
- MPP bridge: connect Stripe/Tempo services to the same router
- Agent credit: credit lines based on transaction history, no pre-loaded wallet required
- CW-PAY: a unified payment spec that wraps all three protocols into one
We're 1,185 Lightning services and 1,503 USDC services into the unified agent economy.
Discovery hub: api.ideafactorylab.org
Lightning status: api.ideafactorylab.org/lightning-status
GitHub: github.com/cinderwright-ai/cinderwright-api
MCP for Claude: npx cinderwright-mcp-server
Top comments (0)