SourceOfTruthVerifier
intel.sourceoftruthverifier
Intelligence
planned
Spec started
frozen
Sanity-check that the source listed in a market's rule actually publishes what's needed for resolution.
What it does
Sanity-check that the source listed in a market's rule actually publishes what's needed for resolution.
Pipeline placement
runs after: —
→
SourceOfTruthVerifier
→
runs before: —
Applies to: —
Why it matters
| If this fails | Consequence |
|---|---|
| Cited source does not actually publish what's needed | A market that cites 'team-website.com' as its source-of-truth resolves on whatever that site publishes. If the site stops publishing, publishes only behind a paywall, or publishes too coarsely (winner only, no margin), the market cannot be resolved cleanly. Catching that at listing prevents the trade. Worked example Setup: Market `Will [Driver] win the [Race] by more than 2.5 seconds?` cites the team's own website. The site historically publishes only winner + lap time of the winner, not gap-to-second. Without bot: MarketScanner approves the market. A strategy enters on a 60/40 prior. At resolution, the cited source publishes only the winner. Polymarket falls back to a secondary source under dispute, and the market settles 9 days after the race. With bot: SourceOfTruthVerifier inspects the last 50 publications from the cited URL, fails to find a `gap_to_second` field, and emits `SOURCE_INSUFFICIENT_FOR_RULE`. Discovery excludes the market on listing. |
| Rule change to a worse source goes undetected | A post-listing edit can swap the cited source for a less reliable one. Pairing this verifier with RuleChangeMonitor catches the moment the cited source becomes unsuitable. |
| Operators have no defensible exclusion reason | MarketScanner needs a structured reason to exclude a market with a broken source-of-truth. The verifier produces that reason in a form Discovery and Governance can both consume. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Market status and metadata from Gamma API | gamma | required | First source in three-way verification. |
| Market status and metadata from Data API | data | required | Second source in three-way verification. |
| On-chain condition state from CTFExchangeV2 | onchain | required | Third source — authoritative on-chain resolution status. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| KillSwitch active flag | KillSwitch | required | Suppress all emissions when KillSwitch is active. |
Authority
What this bot is permitted to do
Read-only
State
Readiness
Spec started
Status
planned
Class
Signal Service
Default mode
shadow_only
Developer owner
Polytraders core
Capital impact
Indirect
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| SOURCEOFTRUTH_GAMMA_DATA_MISMATCH | WARN | Gamma API market status differs from Data API market status. | Emit ObservationReport with discrepancy; flag for strategy review. |
| SOURCEOFTRUTH_CHAIN_API_MISMATCH | WARN | On-chain CTFExchangeV2 resolution state differs from Data API. | Emit ObservationReport with chain_api_mismatch=true; alert on-call. |
| STALE_DATA | WARN | One or more sources has not updated within staleness_threshold_s. | Suppress emission; retry on next poll; alert if persists. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | KillSwitch active; all SourceOfTruthVerifier emissions suppressed. | Continue polling but suppress all ObservationReport emissions. |
Related bots in Intelligence
Used by
Reverse index — strategies that currently reference intel.sourceoftruthverifier. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| US Elections — sentiment fade | demo-wired | last triggered 42m ago |
| BTC weekly — close-aware quotes | demo-wired | last triggered 2m ago |
| Fed Rates — surprise drift | frozen | last triggered 9m ago |
Showing 3 of 3 · demo-wired ≠ production-live
Why this matters
Intelligence bots does NOT propose, veto, sign, or execute any trade. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →