All examples

Arbitrage · Python

Prediction Market Factory

Claude-hosted research and arbitrage agents that turn live Polymarket data into sourced probability notes and human-reviewed order tickets.

View repository

Gordon boundary

Gordon governs the project's paid agent actions. The repository keeps its own strategy, runtime, data ingestion, and execution logic.

Representative output

Factory dashboard

A first-pass view of the artifacts produced by the hosted research and arbitrage agents. Live output ingestion is the next connection step.

Example snapshot

24

markets scanned

6

research signals

3

tickets to review

$0.18

Gordon research spend

Ranked order tickets

Human review required
MarketStrategyNet edgeAnnualizedSizeProfitState
Fed cuts rates before September?complete_set2.8%34.1%$420$11.76Review
2026 Atlantic hurricane count above 14?resolution_lag4.1%27.5%$180$7.38Research check
BTC above $150k before Dec 31?logical_relationship1.9%22.4%$300$5.70Review

Research notes

Representative run

Fed cuts rates before September?

Market

62%

Model

69%

Evidence

8 sources

2026 Atlantic hurricane count above 14?

Market

41%

Model

52%

Evidence

6 sources

BTC above $150k before Dec 31?

Market

28%

Model

34%

Evidence

11 sources

How it works

The research agent runs on Claude every 6 hours. It reads live Polymarket order books, then calls Exa (web search) and CoinGecko (prices) through Gordon to gather supporting evidence. Gordon enforces per-call and daily spend limits. Each successful paid x402 call receives a settlement receipt, and the session_id groups calls by the research run that triggered them. The arbitrage agent reads the resulting research notes offline and produces ranked order tickets — it never calls Gordon directly.

Integration recipe

How Gordon fits

Research spend

Verified

Route paid Exa and CoinGecko calls through Gordon MCP so each paid x402 call is policy-governed and receives a settlement receipt.

Run audit

Verified

Pass a session_id matching each scheduled run so Gordon groups its paid calls in the session activity view.

Trade approval

Planned

Gate future live order execution with a Gordon policy that blocks orders above a threshold without human review.

Integration code

Research agent system prompt (Claude managed agent)
# Gordon MCP is added to the Claude managed agent via the Console.
# The agent is given this system-prompt excerpt:

SYSTEM_PROMPT = """
You are the Polymarket Research Analyst.
Every 6 hours you:
  1. Fetch open markets from the Polymarket REST API.
  2. For each market, call gordon_call_service to gather evidence:
       gordon_call_service({
           "operation": "exa.search.web",
           "params": {"query": "<market title> evidence 2026", "numResults": 8},
           "max_payment_units": 20000,   # $0.02 hard cap
           "session_id": run_id          # ties spend to this run
       })
  3. Estimate P(YES) from the evidence.
  4. Write a research note:  { market, market_price, model_prob, evidence, confidence }

Gordon policy for this agent:
  - Allowed services: exa, coingecko
  - Per-call ceiling: $0.02
  - Daily budget: $1.00
"""

Connection path

01

Create an agent

Give this project its own Gordon identity, wallet, and API key.

02

Add MCP or SDK

Use Gordon MCP for hosted agents or gordon.fetch for application code.

03

Set policy

Allow only required services, then cap calls and daily spend.