Polymarket
- Top 50 active markets
- Sort by volume, liquidity, startDate
- Returns question, volume, prices, outcomes
- Fixed price: $0.01 USDC per call
Three production HTTP endpoints. Polymarket predictions, isolated Python sandbox, FFMPEG media. USDC on Base. No API keys, no subscriptions, no rate limit dance.
Each tool is a separate HTTP route with its own x402 payment. The agent picks the tier, signs the payment, gets the data. Same protocol, three shapes.
x402 is an open HTTP standard for paid APIs. Client sends request, server returns 402 with payment requirements, client signs, retries. The wallet is the API key.
# Step 1: hit endpoint, get 402 + payment requirements
curl -i "https://api.speccy.cloud/v1/predictions/polymarket?limit=5"
# Step 2: sign payment with your wallet (any x402 client lib does this)
# Step 3: retry with X-PAYMENT header
curl "https://api.speccy.cloud/v1/predictions/polymarket?limit=5" \
-H "X-PAYMENT: <base64-encoded signed USDC payment>"
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.WALLET_KEY);
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const paidFetch = wrapFetchWithPayment(fetch, client);
const res = await paidFetch("https://api.speccy.cloud/v1/predictions/polymarket?limit=10");
const data = await res.json();
console.log(data.markets[0].question);
# 1. Run Python — gets `result.stdout`, `result.exit_code`
paid_post "https://exec.speccy.cloud/v1/exec" '{
"language": "python",
"code": "import statistics; print(statistics.mean([1,2,3,4,5]))"
}'
# 2. Run FFmpeg transform — gets download URL
paid_post "https://tools.speccy.cloud/v1/ffmpeg/transform" '{
"input": { "url": "https://example.com/video.mp4" },
"args": ["-vf", "scale=720:-2", "-c:v", "libx264"],
"outputFormat": "mp4"
}'
The MCP server wraps the three endpoints and pays per call from a wallet you fund once. Your agent sees normal MCP tools, not blockchain.
Adds speccy-x402-mcp to your $PATH.
npm install -g @speccy/x402-mcp
Generate any EVM wallet, send it USDC on Base + a sliver of ETH for gas. This wallet pays per call.
Add the MCP server to your agent's config. Claude Desktop, Cursor, Continue, Cline — all work.
{
"mcpServers": {
"speccy-x402": {
"command": "speccy-x402-mcp",
"env": { "SPECCY_MCP_WALLET_KEY": "0x..." }
}
}
}
Both paid in USDC automatically.
Coming soon: transform_media for FFMPEG tiers.
All endpoints are GET (or POST with JSON body), return JSON, pay-per-call in microUSDC. Free samples available — append /sample to any route.
GET /v1/sample/polymarket free example
GET /v1/predictions/polymarket $0.01 — top markets, sort=volume|liquidity|startDate, limit=1..50
GET /v1/predictions/stats free — request counts, latency p50/p95/p99
GET /.well-known/x402.json free — x402 discovery manifest
GET /v1/sample free example
POST /v1/exec $0.02 — body: {language:"python", code:"..."}, 30s timeout
GET /v1/exec/stats free — execution counts
GET /v1/sample free — tier overview
GET /v1/ffmpeg/help?q=trim free — recipe lookup, 18 commands
POST /v1/ffmpeg/copy $0.005 — args: ["-c", "copy"], stream-copy only
POST /v1/ffmpeg/transform $0.05 — standard transcode/filter, <1080p
POST /v1/ffmpeg/heavy $0.20 — 4K, multi-filter, long encode
GET /v1/ffmpeg/stats free — counts, concurrency
GET /v1/ffmpeg/concurrency free — live slot status
GET /llms.txt free — agent cheatsheet
Fund a Base wallet with $1 USDC and you have 200 Polymarket calls, 50 sandbox runs, or any mix. No dashboard, no signup, no email.