LIVE ON BASE MAINNET

Paid tools
for AI agents,
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.

route /v1/predictions/polymarket
caller agent_3f9a2c
scheme x402 exact (eip155:8453)
amount 10000 µUSDC = $0.01
total $0.01
on-chain settlement 0x6580...6704 · confirmed in 1.09s · 1 block
THE TOOLS

Three endpoints.
One mental model.

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.

Polymarket

Prediction markets
  • Top 50 active markets
  • Sort by volume, liquidity, startDate
  • Returns question, volume, prices, outcomes
  • Fixed price: $0.01 USDC per call
$0.01 PER CALL

Sandbox Exec

Isolated Python runtime
  • Python 3.12 in Docker container
  • No network, read-only FS
  • 30s timeout, 64KB output cap
  • Fixed price: $0.02 USDC per run
$0.02 PER RUN

FFMPEG

Media processing
copy remux, trim$0.005
transform transcode, filter$0.05
heavy 4K, long encode$0.20
  • URL or base64 input
  • Any FFmpeg args
  • Max 2 concurrent, queue on overflow
THE PROTOCOL

Standard x402.
Nothing exotic.

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.

curl — paid request
# 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>"
node — using @x402/fetch
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);
python — run code in sandbox
# 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"
}'
3
HTTP ENDPOINTS
5
TIERS (FFMPEG)
1
WEB3 NETWORK
~1s
SETTLEMENT
FOR AGENTS

One install.
Two tools. No x402 knowledge required.

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.

1

Install the package

Adds speccy-x402-mcp to your $PATH.

terminal
npm install -g @speccy/x402-mcp
2

Fund a wallet

Generate any EVM wallet, send it USDC on Base + a sliver of ETH for gas. This wallet pays per call.

3

Wire it into your agent

Add the MCP server to your agent's config. Claude Desktop, Cursor, Continue, Cline — all work.

claude_desktop_config.json
{
  "mcpServers": {
    "speccy-x402": {
      "command": "speccy-x402-mcp",
      "env": { "SPECCY_MCP_WALLET_KEY": "0x..." }
    }
  }
}

Two tools

Both paid in USDC automatically.

  • get_prediction_markets — top Polymarket data, $0.01
  • exec_python — sandboxed code run, $0.02

Coming soon: transform_media for FFMPEG tiers.

ENDPOINTS

The full list.

All endpoints are GET (or POST with JSON body), return JSON, pay-per-call in microUSDC. Free samples available — append /sample to any route.

api.speccy.cloud Polymarket predictions
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
exec.speccy.cloud Python sandbox
GET  /v1/sample                     free example
POST /v1/exec                       $0.02 — body: {language:"python", code:"..."}, 30s timeout
GET  /v1/exec/stats                 free — execution counts
tools.speccy.cloud FFMPEG media
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

Ship something useful.
Pay for what you use.

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.