AI Market Resolution V2
Purpose
V2 expands Speculite from objective crypto and stock price markets into a permissionless market platform that supports many binary outcome types while preserving a verifiable resolution process.
The core idea is:
- users can propose arbitrary binary markets
- an AI planner decides whether the platform can resolve the market using an allowlisted set of sources and tool adapters
- if the market is resolvable, the system generates a formal
resolution spec - the market is created only with that stored spec
- at expiry, the resolver executes the stored spec against the same fixed tools and produces an auditable evidence bundle
- the resolution is challengeable before it becomes final
This document describes the target architecture for that system.
Current MVP Baseline
The current platform supports a narrower market model:
- price-based crypto and stock markets
- binary YES/NO outcome tokens
- strike price and expiry chosen at creation time
- resolution derived from price data, currently centered on the Pyth-based path for objective price resolution
This works because the outcome can be reduced to a direct comparison:
- fetch price at expiry
- compare price to strike
- set YES or NO as winner
V2 keeps this model for objective markets, but generalizes market creation and resolution beyond price feeds.
Product Goals
Goals
- support permissionless creation of many binary market types
- reject markets that cannot be resolved from approved sources
- replace free-form human interpretation with stored machine-readable resolution rules
- make every resolution reproducible from fixed inputs, tools, and source material
- allow external observers to verify the evidence used for resolution
- provide a challenge path for ambiguous or disputed outcomes
Non-goals
- fully solving truth for all possible market questions
- allowing unrestricted AI browsing of the public internet
- eliminating disputes entirely for subjective or delayed events
- supporting vague, opinion-based, or underspecified questions
Core Principles
1. AI is used to formalize, not to improvise
The AI should help transform a user question into a strict resolution procedure. It should not invent new resolution logic at the time of settlement.
2. The platform resolves only what it can define
A market is accepted only if the platform can derive an explicit resolution spec from the user prompt and the available tool catalog.
3. Tools are fixed adapters, not open browsing
The AI resolver does not receive unrestricted web access. It can call only an allowlisted set of source adapters controlled by the platform.
4. Evidence matters as much as the answer
The platform must record the evidence bundle used for resolution, not only the final YES or NO verdict.
5. Finality should be challengeable
Even with fixed tools and evidence, some markets remain ambiguous. V2 should treat AI resolution as proposable and challengeable, not as unquestionable.
High-Level Architecture
V2 introduces two major new subsystems:
-
Market Creation PlannerThis service takes a proposed market question, checks whether it can be resolved using the approved tool catalog, and either rejects it or generates aresolution spec. -
Resolution EngineThis service executes the storedresolution specat resolution time, gathers source evidence through fixed adapters, derives a verdict, and submits a challengeable resolution proposal.
The complete lifecycle becomes:
- User submits a market question.
- AI planner parses the question and classifies the market type.
- Planner checks whether the question is resolvable with the allowlisted tool set.
- If not resolvable, market creation is rejected.
- If resolvable, planner generates a canonical market definition and
resolution spec. - Market is created with a hash of the
resolution specstored in immutable market metadata. - At expiry, the resolver executes the stored spec using only approved adapters.
- Resolver creates an evidence bundle and resolution proposal.
- Proposal enters a challenge window.
- If unchallenged, resolution finalizes on-chain.
- If challenged, dispute rules determine the final outcome.
Market Types
V2 should not treat all markets equally. Each market should be assigned a resolution tier at creation time.
Tier 1: Fully objective markets
Examples:
- price above or below a strike at a specific time
- sports result from an official league API
- regulatory filing published by an official government registry
Characteristics:
- direct source of truth exists
- minimal interpretation required
- good candidates for fully autonomous finalization
Tier 2: Structured event markets
Examples:
- will a candidate win an election
- will a company launch a named product before a date
- will a bill pass a legislative chamber by a deadline
Characteristics:
- resolvable if the source hierarchy is explicit
- usually needs source precedence and invalid conditions
- should be challengeable by default
Tier 3: Weakly structured news markets
Examples:
- will company X announce layoffs
- will country Y declare a state of emergency
Characteristics:
- source language may be ambiguous
- extraction depends on article wording or source timing
- should be accepted only with strict rule templates and a longer challenge window
Tier 4: Non-resolvable markets
Examples:
- will OpenAI dominate AI
- will crypto become mainstream
- will a politician perform well next year
Characteristics:
- no clear canonical source
- subjective or undefined outcome
- must be rejected at creation time
Source and Tool Model
The platform should expose a fixed catalog of source adapters to the AI system.
This is the main design constraint that makes the system auditable.
What the AI should not have
- unrestricted browser access
- arbitrary search engine access
- direct freedom to visit unknown URLs
- free-form tool use outside the allowlisted catalog
What the AI should have
- a closed set of platform-defined adapters
- schemas for the inputs and outputs of each adapter
- source metadata such as reliability tier, jurisdiction, and supported market types
Tool Adapter Design
Tool adapters should be narrow, versioned, and evidence-producing.
Examples:
search_articles(source, query, from, to)
fetch_article(source, article_id_or_url)
fetch_feed_entry(source, identifier, as_of)
fetch_official_page(source, url)
extract_structured_fact(document_hash, schema_name)
compare_claims(claim_set, rule_id)
Each adapter call should return:
- tool name and tool version
- source identifier
- requested parameters
- canonical source URL or API endpoint
- retrieval timestamp
- raw response snapshot or archived pointer
- content hash
- parser version
- normalized output
- error state if retrieval or parsing failed
The result should be append-only and tamper-evident.
Source Classes
The source catalog should be organized by trust level.
Class A: Official sources
Examples:
- election commissions
- SEC or EDGAR
- court dockets
- exchange filings
- league or federation APIs
- government press registries
Preferred use:
- primary source of truth whenever available
Class B: Structured commercial data providers
Examples:
- licensed market data APIs
- sports data feeds
- corporate action feeds
Preferred use:
- when official sources are too slow or too difficult to query directly
Class C: Approved news outlets
Examples:
- Reuters
- AP
- New York Times
- Financial Times
- Bloomberg
- Fox News
Preferred use:
- supporting evidence
- fallback when official sources are unavailable
- never the only truth source for high-value markets unless the market template explicitly allows it
Resolution Spec
The resolution spec is the central artifact of V2.
It should be generated at market creation time, stored immutably by hash, and reused exactly at resolution time.
The user-facing question is not enough. The platform needs a machine-readable contract for how truth will be derived.
Resolution Spec Responsibilities
The spec must define:
- what the question means in canonical form
- which sources are allowed
- which sources have priority
- what exact queries or retrieval patterns are allowed
- what counts as YES
- what counts as NO
- what makes the market invalid
- what to do if sources disagree or are unavailable
- which challenge window applies
Example Structure
{
"version": "1.0",
"marketType": "election_result",
"canonicalQuestion": "Will candidate X be declared winner of office Y in jurisdiction Z for election E?",
"resolverMode": "challengeable-ai",
"resolutionTimestamp": "2026-11-04T05:00:00Z",
"sourcePolicy": {
"primary": ["official_election_commission"],
"fallback": ["reuters", "ap"],
"minimumConfirmations": 1
},
"allowedTools": [
"search_articles@1",
"fetch_article@1",
"fetch_official_page@1",
"extract_structured_fact@2"
],
"queries": [
{
"source": "official_election_commission",
"template": "winner of office Y in jurisdiction Z for election E"
},
{
"source": "reuters",
"template": "candidate X election result office Y jurisdiction Z"
}
],
"decisionRules": [
"YES if primary source declares candidate X winner",
"NO if primary source declares another candidate winner",
"use fallback only if primary source is unavailable"
],
"invalidConditions": [
"no valid source result by final resolution deadline",
"conflicting official results with no platform tie-break rule"
],
"challengePeriodSeconds": 86400
}
Spec Hashing
Each market should store:
resolutionSpecHashmarketRulesHashsourcePolicyHash
The full document can live off-chain in durable storage, but the contract must anchor the hash on-chain.
Market Creation Flow
Step 1: User submits a proposed market
Example:
Will Alice Smith be the next president of Country Z?
Step 2: Planner normalizes the question
The AI planner should:
- rewrite the market in canonical form
- identify the market type
- extract entities, dates, offices, jurisdictions, and deadlines
- identify whether the question is underspecified
Step 3: Planner checks resolvability
The planner compares the normalized question against:
- the available source catalog
- the available tool adapters
- the supported templates for that market type
If the platform cannot define a safe resolution path, it rejects the market.
Step 4: Planner generates a resolution spec
If resolvable, the planner produces:
- canonical question
- outcome rules
- invalid conditions
- source hierarchy
- allowed tools
- query templates
- challenge period
- confidence or risk classification
Step 5: Policy gate
Before a market is created, the system should run policy checks such as:
- prohibited content
- impossible or self-referential markets
- lack of sufficient specificity
- unsupported jurisdiction
- unsupported source availability
- unacceptable ambiguity score
Step 6: Market creation
Only after the spec passes validation should the market be deployed and indexed.
Resolution Flow
At expiry, the resolver does not reinterpret the question. It executes the stored spec.
Step 1: Load immutable market metadata
The resolver loads:
- market id
- canonical question
- expiry
resolutionSpecHash- allowed source policy
Step 2: Execute approved tool calls
The resolver may call only tools listed in the spec.
No new sources, URLs, or workflows should be introduced at this stage unless the market is explicitly shifted into a dispute mode.
Step 3: Build evidence bundle
For each tool call, the resolver archives:
- exact request parameters
- exact response snapshot
- content hash
- parser output
- extractor output
- timestamps
Step 4: Apply decision rules
The resolver should derive a structured decision trace such as:
- source available: yes
- source says candidate X winner: yes
- fallback used: no
- invalid condition triggered: no
- final verdict: YES
Step 5: Submit challengeable resolution proposal
The resolver submits:
- verdict
- evidence bundle hash
- decision trace hash
- attestation or proof bundle
Step 6: Finalization or dispute
If no challenge is raised before the challenge period ends, the resolution finalizes.
If challenged, the market moves to a dispute process.
Evidence Bundle
The evidence bundle should be first-class protocol data.
It should be stored off-chain in durable object storage or content-addressed storage, with hashes anchored on-chain.
Evidence Bundle Contents
{
"marketId": "123",
"resolutionSpecHash": "0x...",
"resolverVersion": "resolver-engine@1.2.0",
"toolCalls": [
{
"tool": "fetch_official_page@1",
"source": "official_election_commission",
"request": {
"url": "https://..."
},
"retrievedAt": "2026-11-04T05:01:10Z",
"contentHash": "0x...",
"parserVersion": "official-page-parser@1.0.3",
"normalizedOutputHash": "0x..."
}
],
"decisionTrace": {
"primarySourceAvailable": true,
"winnerDeclared": "Alice Smith",
"verdict": "YES"
},
"verdict": "YES"
}
Verification Goals
External observers should be able to verify:
- the resolver used the stored spec
- the resolver used only approved tools
- the fetched content matches the archived hashes
- the parsing and extraction steps were run with declared versions
- the verdict matches the evidence and rule trace
Verification and Attestation
V2 needs stronger guarantees than standard backend logs.
There are several levels of verifiability:
Level 1: Hash-anchored auditability
The minimum viable model:
- hash every evidence artifact
- store hashes on-chain
- archive raw inputs and normalized outputs
- allow anyone to recompute the verdict from the evidence
This is the fastest path to production and likely the right first version.
Level 2: Attested execution
A stronger model:
- run the resolver inside an attested execution environment
- sign the execution result with a hardware-backed attestation
- anchor the attestation and evidence hashes on-chain
This improves tamper resistance but still depends on trust in the attestation system.
Level 3: Cryptographic compute verification
The strongest model:
- use zero-knowledge or equivalent proof systems for parts of the execution
- prove that the declared program was run against the declared inputs
This is expensive and difficult for general web content flows, especially when parsing news pages and using large language models.
Recommended V2 approach
For V2, the recommended model is:
- hash-anchored evidence by default
- attested execution for the resolver if operationally feasible
- challenge window for markets above a configurable risk threshold
An external attested compute network such as Ritual Infernet or an equivalent coprocessor design may be a good fit for the execution layer, but the protocol should remain vendor-neutral at the architecture level.
Why Free-Form News Reading Is Not Enough
The platform can allow approved news sources, but only as constrained adapters.
This matters because:
- article wording can be ambiguous
- multiple outlets can disagree temporarily
- articles can be updated after publication
- raw HTML is brittle
- AI extraction can differ across model versions
Therefore approved news sources must be paired with:
- explicit extraction schemas
- source precedence
- fallback rules
- invalid conditions
- durable snapshots
- parser and model version pinning
Dispute and Challenge Model
A permissionless market system should expect edge cases.
Challenge triggers
A challenge may be raised when:
- evidence does not match anchored hashes
- resolver used a tool not present in the spec
- parser or extractor produced an inconsistent result
- a higher-priority source was ignored
- source conflict rules were applied incorrectly
- an invalid condition should have been triggered
Challenge outcomes
The dispute process can:
- uphold the proposed resolution
- overturn the resolution
- mark the market invalid
- escalate the market to a manual review or governance path
Recommended dispute structure
- short challenge period for Tier 1 markets
- longer challenge period for Tier 2 and Tier 3 markets
- economic bond for proposers and challengers
- slashing or fee penalties for clearly bad proposals
On-Chain Design Changes
The current on-chain model is optimized for objective price markets. V2 requires more generic resolution metadata and proposal state.
New market metadata
Each market should add fields such as:
marketTyperesolverModeresolutionSpecHashmarketRulesHashchallengePeriodSecondsresolutionDeadlinestatus
Resolution states
A more complete state machine should include:
OpenExpiredResolutionProposedChallengedResolvedInvalid
New contract functions
Examples:
function proposeResolution(
uint256 marketId,
uint8 verdict,
bytes32 resolutionSpecHash,
bytes32 evidenceBundleHash,
bytes32 decisionTraceHash,
bytes calldata attestation
) external;
function challengeResolution(
uint256 marketId,
bytes32 challengeEvidenceHash
) external payable;
function finalizeResolution(uint256 marketId) external;
function resolveInvalid(uint256 marketId) external;
Event model
The protocol should emit events for:
- market created with
resolutionSpecHash - resolution proposed
- resolution challenged
- resolution finalized
- market invalidated
Off-Chain Services
V2 requires new backend services beyond the current market data and settlement stack.
1. Tool Registry Service
Responsibilities:
- store the catalog of approved adapters
- version tool schemas
- define source metadata and precedence
2. Market Creation Planner
Responsibilities:
- parse proposed market questions
- classify market type
- generate
resolution spec - reject unsupported or ambiguous markets
3. Resolution Executor
Responsibilities:
- load stored specs
- execute approved tool flows
- build evidence bundles
- derive verdicts and decision traces
4. Evidence Archive
Responsibilities:
- store raw source snapshots
- store normalized outputs
- expose public verification endpoints
5. Watcher and Challenger
Responsibilities:
- independently recompute resolutions
- identify mismatches
- submit challenges
Acceptance Policy for User-Generated Markets
The planner should reject a market if any of the following is true:
- the question is subjective
- the time condition is ambiguous
- the entities are unclear or missing
- no supported source hierarchy exists
- the outcome cannot be encoded in a deterministic decision rule
- the market would require unrestricted browsing
- the source language would require open-ended interpretation with no tie-break rule
The product should bias toward rejection rather than pretending everything is resolvable.
Example: Presidency Market
User input:
Will Alice Smith be the next president of Country Z?
Planner output:
- market type:
election_result - canonical question:
Will Alice Smith be declared winner of the 2028 presidential election in Country Z? - primary source: official election commission
- fallback sources: Reuters, AP
- YES rule: official result names Alice Smith winner
- NO rule: official result names another candidate winner
- invalid rule: no certified result by final deadline
Resolution execution:
- Check official election commission source.
- If available and parseable, use it.
- If unavailable, use fallback rules exactly as encoded.
- Produce evidence bundle.
- Propose resolution with challenge period.
This is a valid V2 market.
Example: Unsupported Market
User input:
Will OpenAI dominate AI by 2030?
Planner output:
- reject market
Reason:
- no objective source of truth
- no deterministic YES or NO rule
- no safe
resolution speccan be generated from the current tool catalog
Rollout Plan
Phase 1: Structured templates only
Support only a few templates:
- price markets
- election results
- sports results
- company announcement markets tied to official filings or press releases
Characteristics:
- strict source hierarchies
- short adapter catalog
- strong rejection rules
Phase 2: Challengeable AI resolution
Add:
- evidence archive
- public verification endpoints
- proposer and challenger roles
- challenge periods and bonds
Phase 3: Attested execution
Add:
- attested runtime for resolver execution
- signed execution receipts
- public proof verification tooling
Phase 4: Broader market surface
Add more templates only after:
- tool adapters are stable
- dispute rates are acceptable
- invalid market handling is proven in production
Recommended V2 Scope
The first V2 release should not target "all markets" in practice. It should target:
- all supported market templates that can be reduced to a clear source hierarchy and deterministic rule set
This keeps the product honest while still allowing permissionless creation inside a bounded resolution framework.
Summary
V2 should be built around one rule:
a market can exist only if the platform can write down, store, and later execute an auditable
resolution specusing an allowlisted set of source adapters
That gives the platform a path from the current objective price-market MVP to a broader AI-assisted prediction market system without relying on unrestricted browsing or opaque human intervention.