Baron Power Play
Pay-per-call AI infrastructure for autonomous agents. USDC on Base, settled by Coinbase. No API key, no account, no subscription.
Base URL: https://baron-power-play.baronpowerplay.workers.dev
Why this exists
Agents fail at paid APIs in four predictable ways. Baron Power Play is built to remove each one.
| Agent failure | What Baron does about it |
|---|---|
| You cannot learn the price or the shape of a service before committing money | Every route publishes an exact x402 v2 challenge and a machine-readable contract. You know the cost to six decimal places before you send a single request. |
| A provider 429s halfway through your task and your agent dies | Several independent engines with automatic failover and a pooled daily capacity. A dead engine is invisible to the caller. |
| A third-party service can steer your agent with text smuggled into a response | Prompt-override attempts are blocked before payment, and model output is scanned before it is returned. |
If you are an agent, read /.well-known/x402.json and /openapi.json first. They are the contract. This README is the human-readable summary.
Verify before you pay
This is free and it is the fastest way to decide whether to depend on us.
curl https://baron-power-play.baronpowerplay.workers.dev/test
It returns engine-by-engine health, a live inference result, and live checks of the market-data and voice paths. Run it whenever you are about to depend on this service, not once at signup.
Services
| Endpoint | Method | Price (USDC) | What you get |
|---|---|---|---|
/infer | POST | 0.001 | LLM inference. JSON and code are auto-formatted on the way out. |
/markets | GET | 0.002 | DeFi TVL leaders, DEX trending pairs, meme category, watchlists, delta sync. |
/alpha | GET | 0.05 | Trading notes with Kelly-Criterion position sizing. No verified track record is published — treat this as research input, not a signal to trade. |
/tts | POST | 0.01 | Text to speech with emotion casting and a pronunciation dictionary that remembers per wallet. |
/stt | POST | 0.01 | Speech to text with crypto-keyword detection and timestamped segments. |
/test | GET | free | Readiness, engine health, and live capability check. |
/alpha accepts portfolio_size_usd as a query parameter.
Payment
- Network: Base (
eip155:8453) - Asset: USDC, paid with an EIP-3009
transferWithAuthorization - Asset identity:
USD Coinversion2 - Protocol: x402 v2 — HTTP 402 Payment Required
- Facilitator: Coinbase CDP (
https://api.cdp.coinbase.com/platform/v2/x402) - Receiving wallet:
0xb838930bf3dFD467D30979E12c0a94286F86708D
The flow is the standard one. You send the request, you get a 402 with the exact payment requirement, you sign an authorization, you resend with the PAYMENT-SIGNATURE header, and the facilitator settles on Base. Work is only performed after Coinbase verifies and settles the payment. No unpaid work, ever.
Amounts on the wire are in token atomic units. A 0.001 USDC call quotes as 1000 in accepts[].amount. The amount fields in openapi.json are decimal USD; the runtime accepts[].amount is atomic units.
Capacity
Inference is pooled across several independent engines, selected by remaining headroom, with automatic failover, so a failing upstream is invisible to the caller.
Capacity resets at 00:00 UTC. When the pool is exhausted the route returns a machine-readable SOLD_OUT with a Retry-After and a comeback offer rather than a generic error.
/markets, /alpha, /tts, and /stt do not draw on the LLM engine pool.
Limits and abuse controls
Per wallet, per day:
- 50 calls per endpoint (
/alpha: 20) - a lower cap during the wallet's first 24 hours
- $10 total spend
- 10 payment requests per second
Per request:
User-Agentrequired, minimum 3 charactersPOSTmust sendContent-Type: application/json- bodies over 1 MB are refused
- query strings over 2000 characters are refused
X-Idempotency-Keyis optional, max 128 characters, restricted character set- wrong HTTP method returns
405with a machine-readableMETHOD_NOT_ALLOWED
Reuse defenses:
- a used payment header is refused for 1 hour
- a used USDC authorization nonce is refused for 24 hours
- 5 rejected override attempts in an hour blocks that wallet for a day
Every error uses one shape, so you can branch on code instead of parsing prose:
{
"error": "/infer accepts POST, not GET",
"code": "METHOD_NOT_ALLOWED",
"suggestion": "Use POST /infer.",
"timestamp": 1790458945409
}
Referrals
Refer a wallet and both sides benefit: the referred wallet gets 10% off its first paid call, and the referrer is credited 5% of the list price after settlement. Three referred calls per day maximum, no self-referral.
Discovery
GET /openapi.json— canonical OpenAPI 3.1 contract: request and response schemas,x-payment-infoper route, error codesGET /.well-known/x402.json— x402 manifest: endpoints, prices, methods, facilitator, payment requirements, defensesGET /test— free health and capacity check
Working with it
BASE=https://baron-power-play.baronpowerplay.workers.dev
# free readiness check
curl -s "$BASE/test"
# the machine-readable contract
curl -s "$BASE/openapi.json"
# see the exact payment requirement before paying anything
curl -si -X POST "$BASE/infer" \
-H 'Content-Type: application/json' \
-H 'User-Agent: your-agent/1.0' \
-d '{"messages":[{"role":"user","content":"hello"}]}'
# -> HTTP 402 with the x402 v2 challenge in accepts[]
# market data
curl -s "$BASE/markets"
To make a paid call, take the accepts[] entry from the 402, sign the matching EIP-3009 authorization with your wallet, and resend the original request with the PAYMENT-SIGNATURE header. Any x402 v2 client library does this for you.
License
Not yet declared. Add a LICENSE file before treating this as reusable.