case · 005
Prediction-market resolver.
A resolution service that watches a prediction market for closure, fetches authoritative sources for the underlying question, reasons through the market's stated rules, and submits a citation-backed outcome (YES / NO / UNKNOWN / EARLY) within seconds. Designed for prediction markets that don't want token-weighted oracles deciding outcomes.
fig. 0.1
Cover image · resolution flow
Existing prediction-market oracles have three structural flaws: resolution becomes truth by inertia if no one challenges a stale proposal within the short window; challenging costs a bond that prices out small holders; and final disputes are decided by token weight, not evidence.
Our team shipped an alternative: an AI agent bound by the market's own rules (injected as system-prompt context), given real-time web search to gather authoritative sources, and forced to call a `submit_resolution` tool with outcome + reasoning + citation list + confidence. Every decision produces a full audit memo the platform can publish.
resolution outcomes (YES / NO / UNKNOWN / EARLY)
average resolution latency from market close
tool-call contract per resolution (no string parsing)
of decisions come with reasoning + citations + confidence
Each cycle begins with the resolver pulling the market's question, rules, allowed outcomes, and primary sources. A dynamic prompt is generated from that context and pushed into the system prompt. The AI runs the web-search plugin, evaluates the evidence against the resolution criteria, and submits the structured outcome — no string parsing on the calling code's side, the tool call *is* the contract.
Confidence below a configured threshold auto-resolves to UNKNOWN rather than guessing. Outcomes are stored with processing time, model used, and a full reasoning trail so any dispute can be replayed. Production-ready upgrades in the roadmap message queue replacement (Kafka / RabbitMQ), multi-model consensus, persistent PostgreSQL backing the resolution store, and rate limiting on the resolve endpoint.
/ stack
- off-chain (replaces an on-chain capital-weighted oracle with a neutral resolver)
- TypeScript
- Node.js
- Bun runtime
- OpenRouter multi-LLM
- web-search plugin
- structured tool calls
- in-memory store (production: PostgreSQL + Kafka/RabbitMQ)
next case study
Cross-exchange orderbook aggregator..
A lightweight, dependency-light service that maintains a live orderbook per exchange (Binance, Coinbase, Kraken, Bitstamp) via WebSocket, then merges them into a unified book for BTC, ETH, and SOL across USDT pairs. Exchanges that send snapshots via REST (Binance, Bitstamp) buffer WebSocket deltas until the snapshot lands, then replay in order.
/ start a project