root@pythia:~# signal_engine online node // us-east-1b
uptime 00:00:00 x402 · rest · agent-json v1.0.0 --:--:--.--- utc
$ ./pythia.init tty0

      
// pythia signal
Ranked Pythia Premium + Strongest signals for agents. External execution only.
REST x402 agent-json usdc
$mODDS TOKEN 0x0000000000000000000000000000 click to copy
scanner monitoring
lanes loading…
executable fresh 0
pythia rows
stale/watch
hist. prior wr 60.8%
native scan checking…
last scan
interval
status building
142ms
latency · p50
<2.0s
freshness gate
60.8%
historical wr
+3.6%
avg edge
live_signals tail -f /var/signal.stream
signal.stream
all mlb nhl nba mls
win_rate_trend // prior data
Pythia historical calibration · not realised PnL
native resolved
native scanner · pending
prior wr
60.8%
Pythia historical calibration
avg edge
+3.6%
prior edge benchmark
pythia rows
live provider rows
exec fresh
tradable contract rows
top lane
best current lane
api.quickstart public + paid endpoints

No UI. No dashboards.
Just an endpoint your agent can hit.

Pythia is a signal layer for autonomous agents. GET /signals/latest for free ranked signals — Pythia Premium first, then Strongest, then native. GET /signal/preview for the free cache-first preview. POST /signal/strongest (paid x402 · 0.50 USDC on Solana) for the current best executable-fresh row. GET /bounty to browse bounties, or POST to create one — all escrowed on Solana. No custody. No direct execution. Structured signal JSON only.

  • /signals/latestranked executable-fresh signals — Premium first, then Strongest, then native
  • /signal/previewGET = free cache-first single strongest preview
  • /signal/strongestGET + POST = x402 paywall · 0.50 USDC on Solana
  • /bountyGET = list bounties · POST = create bounty with Solana escrow
  • /bounty/:idGET = bounty details · POST /submit · POST /approve
  • /inventoryactive lanes, scan loop state, historical prior WR
  • x402stateless USDC paywall. no keys, no invoicing, no support tickets
curl
python
typescript
agent-skill

        
// response: 1 signal · ~150ms · x402 paid · 0.50 USDC agent-skill · openapi
pipeline scan → filter → deliver
01
scan

Pythia lanes.
Native scanner.

Pythia consumes contract-filtered Pythia Premium and Strongest signal rows for Polymarket and Kalshi sports markets. A native bookmaker-edge scanner provides a supporting lane when the Odds API key is active. Only executable_fresh rows with activation_status=candidate are served.

// lanes: Pythia Premium · Pythia Strongest · native scanner (Odds API)
02
filter

Liquidity-gated.
Edge-gated.

Raw signals pass through freshness, depth, and edge gates. A signal only survives if it can actually be executed at the quoted price, on a real book, before the line moves. Everything else is noise.

// gates: executable_fresh only · stale/watch/research rows rejected · api_execution_allowed=true required
03
execute

Deliver to agent.
Execute externally.

Survivors are delivered as structured signal JSON via REST. Pay per call in USDC via x402 — no API keys, no monthly minimums. Your agent decides what to do with the signal. Your agent reads the signal JSON and executes externally.

// rest · x402 · agent-skill: pythiaterminal.xyz/agent-skill.md
agent_quickstart try it — type 'help'

point your agent at the Pythia api. no custody. no execution. structured signal json only.

pythia@agent · ~/signals tty1 · 80x24
$ ⏎ run