{"openapi":"3.1.0","info":{"title":"Problee Consumer API","version":"1.0.0","description":"Public consumer API for stable market discovery, read-only market metadata, and black-box Reputation reads. Creator propose, challenge, and related markets are on Agent REST (`/api/agent/v1/resolve/*`, `/api/agent/v1/discover/markets/:address/related`). Browser-only, admin, agent, internal, and raw first-party DTO routes are intentionally excluded.","contact":{"name":"Problee Protocol","url":"https://problee.com"},"termsOfService":"https://problee.com/legal?tab=developers","license":{"name":"Problee Proprietary License","url":"https://problee.com/legal"}},"servers":[{"url":"https://problee.com/api/v1","description":"Production"},{"url":"/api/v1","description":"Consumer API v1"}],"security":[],"paths":{"/markets":{"get":{"operationId":"getMarkets","summary":"List public markets","tags":["ConsumerV1"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"query","name":"marketState","schema":{"$ref":"#/components/schemas/MarketState"}},{"in":"query","name":"category","schema":{"type":"string"}},{"in":"query","name":"sort","schema":{"type":"string"}},{"in":"query","name":"dateRange","schema":{"type":"string"}},{"in":"query","name":"creator","schema":{"type":"string"}},{"in":"query","name":"chainId","schema":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"in":"query","name":"collateral","schema":{"type":"string"}},{"in":"query","name":"pricingModel","schema":{"type":"string"}},{"in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"probMin","schema":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"in":"query","name":"probMax","schema":{"anyOf":[{"type":"string"},{"type":"number"}]}},{"in":"query","name":"geoPlace","schema":{"type":"string"}},{"in":"query","name":"geoCountry","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"Cache-Control":{"required":true,"description":"Public market-list cache policy set by the backend cache-control middleware.","schema":{"type":"string","description":"Public market-list cache policy set by the backend cache-control middleware."}},"X-Next-Cursor":{"description":"Opaque pagination cursor for the next page when more markets are available.","schema":{"description":"Opaque pagination cursor for the next page when more markets are available.","type":"string","minLength":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketListingsResponse"}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/economy/purchase-terms":{"get":{"operationId":"getEconomyPurchaseTerms","summary":"What PM costs and how it may be bought","tags":["Economy"],"x-permission":"api-key-read","x-rate-class":"read","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyPurchaseTermsResponse"}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/economy/checkout-session":{"post":{"operationId":"postEconomyCheckoutSession","summary":"Start a card purchase of a PM bundle","tags":["Economy"],"x-permission":"api-key-execute","x-rate-class":"write","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyCheckoutSessionBody"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyCheckoutSessionResponse"}}}},"400":{"description":"Error: one of PURCHASE_NOT_A_BUNDLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"PURCHASE_NOT_A_BUNDLE":{"summary":"PURCHASE_NOT_A_BUNDLE","value":{"type":"https://problee.com/errors/PURCHASE_NOT_A_BUNDLE","title":"Example PURCHASE_NOT_A_BUNDLE","status":400,"detail":"Example detail for PURCHASE_NOT_A_BUNDLE","code":"PURCHASE_NOT_A_BUNDLE"}}}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"429":{"description":"Error: one of PURCHASE_CAP_EXCEEDED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"PURCHASE_CAP_EXCEEDED":{"summary":"PURCHASE_CAP_EXCEEDED","value":{"type":"https://problee.com/errors/PURCHASE_CAP_EXCEEDED","title":"Example PURCHASE_CAP_EXCEEDED","status":429,"detail":"Example detail for PURCHASE_CAP_EXCEEDED","code":"PURCHASE_CAP_EXCEEDED"}}}}}},"503":{"description":"Error: one of SERVICE_UNAVAILABLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SERVICE_UNAVAILABLE":{"summary":"SERVICE_UNAVAILABLE","value":{"type":"https://problee.com/errors/SERVICE_UNAVAILABLE","title":"Example SERVICE_UNAVAILABLE","status":503,"detail":"Example detail for SERVICE_UNAVAILABLE","code":"SERVICE_UNAVAILABLE"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/economy/purchase-status/{sessionId}":{"get":{"operationId":"getEconomyPurchaseStatusBySessionId","summary":"Status of one card purchase","tags":["Economy"],"x-permission":"api-key-read","x-rate-class":"read","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[{"in":"path","name":"sessionId","schema":{"$ref":"#/components/schemas/ConsumerStripeSessionId"},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyPurchaseStatusResponse"}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"404":{"description":"Error: one of NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"503":{"description":"Error: one of SERVICE_UNAVAILABLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SERVICE_UNAVAILABLE":{"summary":"SERVICE_UNAVAILABLE","value":{"type":"https://problee.com/errors/SERVICE_UNAVAILABLE","title":"Example SERVICE_UNAVAILABLE","status":503,"detail":"Example detail for SERVICE_UNAVAILABLE","code":"SERVICE_UNAVAILABLE"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/economy/relay-purchase":{"post":{"operationId":"postEconomyRelayPurchase","summary":"Buy PM with USDC, gas sponsored","tags":["Economy"],"x-permission":"api-key-execute","x-rate-class":"write","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyRelayPurchaseBody"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomyRelayPurchaseResponse"}}}},"400":{"description":"Error: one of AMOUNT_BELOW_MINIMUM","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"AMOUNT_BELOW_MINIMUM":{"summary":"AMOUNT_BELOW_MINIMUM","value":{"type":"https://problee.com/errors/AMOUNT_BELOW_MINIMUM","title":"Example AMOUNT_BELOW_MINIMUM","status":400,"detail":"Example detail for AMOUNT_BELOW_MINIMUM","code":"AMOUNT_BELOW_MINIMUM"}}}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"409":{"description":"Error: one of SALE_PAUSED, SALE_INVENTORY_SHORT, QUOTE_MISMATCH, INSUFFICIENT_PAYMENT_BALANCE, RELAY_REVERTED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SALE_PAUSED":{"summary":"SALE_PAUSED","value":{"type":"https://problee.com/errors/SALE_PAUSED","title":"Example SALE_PAUSED","status":409,"detail":"Example detail for SALE_PAUSED","code":"SALE_PAUSED"}},"SALE_INVENTORY_SHORT":{"summary":"SALE_INVENTORY_SHORT","value":{"type":"https://problee.com/errors/SALE_INVENTORY_SHORT","title":"Example SALE_INVENTORY_SHORT","status":409,"detail":"Example detail for SALE_INVENTORY_SHORT","code":"SALE_INVENTORY_SHORT"}},"QUOTE_MISMATCH":{"summary":"QUOTE_MISMATCH","value":{"type":"https://problee.com/errors/QUOTE_MISMATCH","title":"Example QUOTE_MISMATCH","status":409,"detail":"Example detail for QUOTE_MISMATCH","code":"QUOTE_MISMATCH"}},"INSUFFICIENT_PAYMENT_BALANCE":{"summary":"INSUFFICIENT_PAYMENT_BALANCE","value":{"type":"https://problee.com/errors/INSUFFICIENT_PAYMENT_BALANCE","title":"Example INSUFFICIENT_PAYMENT_BALANCE","status":409,"detail":"Example detail for INSUFFICIENT_PAYMENT_BALANCE","code":"INSUFFICIENT_PAYMENT_BALANCE"}},"RELAY_REVERTED":{"summary":"RELAY_REVERTED","value":{"type":"https://problee.com/errors/RELAY_REVERTED","title":"Example RELAY_REVERTED","status":409,"detail":"Example detail for RELAY_REVERTED","code":"RELAY_REVERTED"}}}}}},"503":{"description":"Error: one of SERVICE_UNAVAILABLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SERVICE_UNAVAILABLE":{"summary":"SERVICE_UNAVAILABLE","value":{"type":"https://problee.com/errors/SERVICE_UNAVAILABLE","title":"Example SERVICE_UNAVAILABLE","status":503,"detail":"Example detail for SERVICE_UNAVAILABLE","code":"SERVICE_UNAVAILABLE"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/economy/signup-grant":{"get":{"operationId":"getEconomySignupGrant","summary":"The PM your account was funded with at signup","tags":["Economy"],"x-permission":"api-key-read","x-rate-class":"read","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsumerEconomySignupGrantResponse"}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"503":{"description":"Error: one of SERVICE_UNAVAILABLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SERVICE_UNAVAILABLE":{"summary":"SERVICE_UNAVAILABLE","value":{"type":"https://problee.com/errors/SERVICE_UNAVAILABLE","title":"Example SERVICE_UNAVAILABLE","status":503,"detail":"Example detail for SERVICE_UNAVAILABLE","code":"SERVICE_UNAVAILABLE"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/discovery/theses":{"get":{"operationId":"getDiscoveryTheses","summary":"List live, tradeable discovery theses","tags":["ConsumerV1","Discovery"],"x-permission":"none","x-rate-class":"read","x-tier":"read-only","security":[],"parameters":[{"in":"query","name":"chainId","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"required":true},{"in":"query","name":"locale","schema":{"default":"en-US","$ref":"#/components/schemas/DiscoveryThesisLocale"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryThesesResponse"}}}},"400":{"description":"Error: one of INVALID_QUERY, UNSUPPORTED_CHAIN","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_QUERY":{"summary":"INVALID_QUERY","value":{"type":"https://problee.com/errors/INVALID_QUERY","title":"Example INVALID_QUERY","status":400,"detail":"Example detail for INVALID_QUERY","code":"INVALID_QUERY"}},"UNSUPPORTED_CHAIN":{"summary":"UNSUPPORTED_CHAIN","value":{"type":"https://problee.com/errors/UNSUPPORTED_CHAIN","title":"Example UNSUPPORTED_CHAIN","status":400,"detail":"Example detail for UNSUPPORTED_CHAIN","code":"UNSUPPORTED_CHAIN"}}}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/markets/sitemap":{"get":{"operationId":"getMarketsSitemap","summary":"Compact indexable market list for sitemap generation","tags":["ConsumerV1"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSitemapResponse"}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/markets/counts":{"get":{"operationId":"getMarketsCounts","summary":"Per-status market counts for discovery filter badges","tags":["ConsumerV1"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"query","name":"category","schema":{"type":"string"}},{"in":"query","name":"collateral","schema":{"type":"string"}},{"in":"query","name":"dateRange","schema":{"type":"string","enum":["TODAY","WEEK","MONTH"]}},{"in":"query","name":"pricingModel","schema":{"type":"string"}},{"in":"query","name":"search","schema":{"type":"string","minLength":2,"maxLength":200}},{"in":"query","name":"chainId","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},{"in":"query","name":"probMin","schema":{"type":"integer","minimum":0,"maximum":100}},{"in":"query","name":"probMax","schema":{"type":"integer","minimum":0,"maximum":100}},{"in":"query","name":"geoPlace","schema":{"type":"string"}},{"in":"query","name":"geoCountry","schema":{"type":"string","minLength":2,"maxLength":2}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketCountsResponse"}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/markets/{market_id}/chart":{"get":{"operationId":"getMarketsByMarketIdChart","summary":"Unified market chart series + canonical latest price","tags":["ConsumerV1"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"path","name":"market_id","schema":{"type":"string","minLength":1},"required":true},{"in":"query","name":"chainId","schema":{"$ref":"#/components/schemas/ChainId"},"required":true,"description":"Compiled protocol release chain ID (Base 8453)."},{"in":"query","name":"window","schema":{"$ref":"#/components/schemas/MarketChartWindow"}},{"in":"query","name":"address","schema":{"$ref":"#/components/schemas/EvmAddress"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketChartResponse"}}}},"400":{"description":"Error: one of INVALID_ID, INVALID_QUERY, MISSING_FIELDS","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_ID":{"summary":"INVALID_ID","value":{"type":"https://problee.com/errors/INVALID_ID","title":"Example INVALID_ID","status":400,"detail":"Example detail for INVALID_ID","code":"INVALID_ID"}},"INVALID_QUERY":{"summary":"INVALID_QUERY","value":{"type":"https://problee.com/errors/INVALID_QUERY","title":"Example INVALID_QUERY","status":400,"detail":"Example detail for INVALID_QUERY","code":"INVALID_QUERY"}},"MISSING_FIELDS":{"summary":"MISSING_FIELDS","value":{"type":"https://problee.com/errors/MISSING_FIELDS","title":"Example MISSING_FIELDS","status":400,"detail":"Example detail for MISSING_FIELDS","code":"MISSING_FIELDS"}}}}}},"404":{"description":"Error: one of MARKET_NOT_FOUND, NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"MARKET_NOT_FOUND":{"summary":"MARKET_NOT_FOUND","value":{"type":"https://problee.com/errors/MARKET_NOT_FOUND","title":"Example MARKET_NOT_FOUND","status":404,"detail":"Example detail for MARKET_NOT_FOUND","code":"MARKET_NOT_FOUND"}},"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/markets/by-creator/{address}/live-count":{"get":{"operationId":"getMarketsByCreatorByAddressLiveCount","summary":"Count currently live markets by creator","tags":["ConsumerV1"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"path","name":"address","schema":{"$ref":"#/components/schemas/EvmAddress"},"required":true,"description":"Checksummed or lowercase 20-byte EVM address (0x + 40 hex)."},{"in":"query","name":"excludeMarket","schema":{"$ref":"#/components/schemas/EvmAddress"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatorLiveMarketCountResponse"}}}},"400":{"description":"Error: one of INVALID_PAYLOAD","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_PAYLOAD":{"summary":"INVALID_PAYLOAD","value":{"type":"https://problee.com/errors/INVALID_PAYLOAD","title":"Example INVALID_PAYLOAD","status":400,"detail":"Example detail for INVALID_PAYLOAD","code":"INVALID_PAYLOAD"}}}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/leaderboard":{"get":{"operationId":"getLeaderboard","summary":"Public trader, creator, and voter leaderboard","tags":["Leaderboard"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"query","name":"sort","schema":{"default":"PNL","$ref":"#/components/schemas/LeaderboardSort"}},{"in":"query","name":"category","schema":{"default":"ALL","type":"string","enum":["ALL","CRYPTO","SPORTS","POLITICS","FINANCE","TECH","DAILY_LIFE","LOCAL","SOCIAL","FUN","OTHER"]}},{"in":"query","name":"period","schema":{"default":"7d","$ref":"#/components/schemas/LeaderboardPeriod"}},{"in":"query","name":"limit","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":200}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaderboardResponse"}}}},"400":{"description":"Error: one of INVALID_PAYLOAD","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_PAYLOAD":{"summary":"INVALID_PAYLOAD","value":{"type":"https://problee.com/errors/INVALID_PAYLOAD","title":"Example INVALID_PAYLOAD","status":400,"detail":"Example detail for INVALID_PAYLOAD","code":"INVALID_PAYLOAD"}}}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/reputation/leaderboard":{"get":{"operationId":"getReputationLeaderboard","summary":"Reputation leaderboard (rank + tier; scores are never exposed)","tags":["Reputation"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationLeaderboardResponse"}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/reputation/subjects/{subjectId}":{"get":{"operationId":"getReputationSubjectsBySubjectId","summary":"Reputation subject payload (tier + capability gates)","tags":["Reputation"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"path","name":"subjectId","schema":{"type":"string","minLength":1,"maxLength":256},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationSubjectPayloadWire"}}}},"400":{"description":"Error: one of INVALID_ID","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_ID":{"summary":"INVALID_ID","value":{"type":"https://problee.com/errors/INVALID_ID","title":"Example INVALID_ID","status":400,"detail":"Example detail for INVALID_ID","code":"INVALID_ID"}}}}}},"404":{"description":"Error: one of NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/reputation/{walletAddress}":{"get":{"operationId":"getReputationByWalletAddress","summary":"Reputation payload for a wallet alias (tier + capability gates)","tags":["Reputation"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","parameters":[{"in":"path","name":"walletAddress","schema":{"$ref":"#/components/schemas/EvmAddress"},"required":true,"description":"Checksummed or lowercase 20-byte EVM address (0x + 40 hex)."}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationSubjectPayloadWire"}}}},"400":{"description":"Error: one of INVALID_ID","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_ID":{"summary":"INVALID_ID","value":{"type":"https://problee.com/errors/INVALID_ID","title":"Example INVALID_ID","status":400,"detail":"Example detail for INVALID_ID","code":"INVALID_ID"}}}}}},"404":{"description":"Error: one of NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/reputation/subjects/{subjectId}/events":{"get":{"operationId":"getReputationSubjectsBySubjectIdEvents","summary":"Owner-gated Reputation event log (audit trail)","tags":["Reputation"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[{"in":"path","name":"subjectId","schema":{"type":"string","minLength":1,"maxLength":256},"required":true},{"in":"query","name":"limit","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},{"in":"query","name":"filter","schema":{"default":"all_linked","type":"string","enum":["all_linked","this_wallet"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationEventsResponse"}}}},"400":{"description":"Error: one of INVALID_ID","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_ID":{"summary":"INVALID_ID","value":{"type":"https://problee.com/errors/INVALID_ID","title":"Example INVALID_ID","status":400,"detail":"Example detail for INVALID_ID","code":"INVALID_ID"}}}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"403":{"description":"Error: one of FORBIDDEN","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"FORBIDDEN":{"summary":"FORBIDDEN","value":{"type":"https://problee.com/errors/FORBIDDEN","title":"Example FORBIDDEN","status":403,"detail":"Example detail for FORBIDDEN","code":"FORBIDDEN"}}}}}},"404":{"description":"Error: one of NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/reputation/{walletAddress}/events":{"get":{"operationId":"getReputationByWalletAddressEvents","summary":"Owner-gated Reputation event log for a wallet alias","tags":["Reputation"],"x-permission":"api-key-read","x-rate-class":"read","x-tier":"read-only","security":[{"cookieAuth":[]},{"developerAuthHeader":[]}],"parameters":[{"in":"path","name":"walletAddress","schema":{"$ref":"#/components/schemas/EvmAddress"},"required":true,"description":"Checksummed or lowercase 20-byte EVM address (0x + 40 hex)."},{"in":"query","name":"limit","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},{"in":"query","name":"filter","schema":{"default":"all_linked","type":"string","enum":["all_linked","this_wallet"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationEventsResponse"}}}},"400":{"description":"Error: one of INVALID_ID","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_ID":{"summary":"INVALID_ID","value":{"type":"https://problee.com/errors/INVALID_ID","title":"Example INVALID_ID","status":400,"detail":"Example detail for INVALID_ID","code":"INVALID_ID"}}}}}},"401":{"description":"Error: one of WALLET_AUTH_REQUIRED","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"WALLET_AUTH_REQUIRED":{"summary":"WALLET_AUTH_REQUIRED","value":{"type":"https://problee.com/errors/WALLET_AUTH_REQUIRED","title":"Example WALLET_AUTH_REQUIRED","status":401,"detail":"Example detail for WALLET_AUTH_REQUIRED","code":"WALLET_AUTH_REQUIRED"}}}}}},"403":{"description":"Error: one of FORBIDDEN","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"FORBIDDEN":{"summary":"FORBIDDEN","value":{"type":"https://problee.com/errors/FORBIDDEN","title":"Example FORBIDDEN","status":403,"detail":"Example detail for FORBIDDEN","code":"FORBIDDEN"}}}}}},"404":{"description":"Error: one of NOT_FOUND","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"NOT_FOUND":{"summary":"NOT_FOUND","value":{"type":"https://problee.com/errors/NOT_FOUND","title":"Example NOT_FOUND","status":404,"detail":"Example detail for NOT_FOUND","code":"NOT_FOUND"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}},"/transactions/{hash}":{"get":{"operationId":"getTransactionsByHash","summary":"Read chain-authoritative transaction status","tags":["Transactions"],"x-permission":"none","x-rate-class":"read","x-examples":{"confirmed":{"summary":"Receipt-confirmed transaction","value":{"name":"confirmed","summary":"Receipt-confirmed transaction","request":{"params":{"hash":"0x1111111111111111111111111111111111111111111111111111111111111111"},"query":{"chainId":8453,"operationId":"trade:market-1:buy","idempotencyKey":"trade-attempt-1"}},"response":{"state":"CONFIRMED","operationId":"trade:market-1:buy","idempotencyKey":"trade-attempt-1","chainId":8453,"txHash":"0x1111111111111111111111111111111111111111111111111111111111111111","blockNumber":"12345678","confirmedAt":"2026-07-23T12:00:00.000Z","statusUrl":"/api/agent/v1/transactions/0x1111111111111111111111111111111111111111111111111111111111111111?chainId=8453&operationId=trade%3Amarket-1%3Abuy&idempotencyKey=trade-attempt-1","receipt":{"status":"success","blockNumber":"12345678","blockHash":"0x2222222222222222222222222222222222222222222222222222222222222222","transactionIndex":"7"}}}}},"security":[],"parameters":[{"in":"path","name":"hash","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"required":true},{"in":"query","name":"chainId","schema":{"$ref":"#/components/schemas/ChainId"}},{"in":"query","name":"operationId","schema":{"description":"Optional correlation label returned verbatim; the receipt remains authoritative.","type":"string","minLength":1,"maxLength":200},"description":"Optional correlation label returned verbatim; the receipt remains authoritative."},{"in":"query","name":"idempotencyKey","schema":{"description":"Optional replay correlation label returned verbatim; the receipt remains authoritative.","type":"string","minLength":1,"maxLength":200},"description":"Optional replay correlation label returned verbatim; the receipt remains authoritative."},{"in":"query","name":"submittedAt","schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolTransactionStatusResponse"},"examples":{"confirmed":{"summary":"Receipt-confirmed transaction","value":{"state":"CONFIRMED","operationId":"trade:market-1:buy","idempotencyKey":"trade-attempt-1","chainId":8453,"txHash":"0x1111111111111111111111111111111111111111111111111111111111111111","blockNumber":"12345678","confirmedAt":"2026-07-23T12:00:00.000Z","statusUrl":"/api/agent/v1/transactions/0x1111111111111111111111111111111111111111111111111111111111111111?chainId=8453&operationId=trade%3Amarket-1%3Abuy&idempotencyKey=trade-attempt-1","receipt":{"status":"success","blockNumber":"12345678","blockHash":"0x2222222222222222222222222222222222222222222222222222222222222222","transactionIndex":"7"}}}}}}},"400":{"description":"Error: one of INVALID_PAYLOAD, INVALID_CHAIN","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INVALID_PAYLOAD":{"summary":"INVALID_PAYLOAD","value":{"type":"https://problee.com/errors/INVALID_PAYLOAD","title":"Example INVALID_PAYLOAD","status":400,"detail":"Example detail for INVALID_PAYLOAD","code":"INVALID_PAYLOAD"}},"INVALID_CHAIN":{"summary":"INVALID_CHAIN","value":{"type":"https://problee.com/errors/INVALID_CHAIN","title":"Example INVALID_CHAIN","status":400,"detail":"Example detail for INVALID_CHAIN","code":"INVALID_CHAIN"}}}}}},"500":{"description":"Error: one of INTERNAL_ERROR","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"INTERNAL_ERROR":{"summary":"INTERNAL_ERROR","value":{"type":"https://problee.com/errors/INTERNAL_ERROR","title":"Example INTERNAL_ERROR","status":500,"detail":"Example detail for INTERNAL_ERROR","code":"INTERNAL_ERROR"}}}}}},"503":{"description":"Error: one of SERVICE_UNAVAILABLE","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"},"examples":{"SERVICE_UNAVAILABLE":{"summary":"SERVICE_UNAVAILABLE","value":{"type":"https://problee.com/errors/SERVICE_UNAVAILABLE","title":"Example SERVICE_UNAVAILABLE","status":503,"detail":"Example detail for SERVICE_UNAVAILABLE","code":"SERVICE_UNAVAILABLE"}}}}}},"default":{"description":"Error response (RFC 9457 Problem Details for HTTP APIs)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}}}}},"components":{"schemas":{"MarketState":{"type":"string","enum":["open","closed","creator_proposal","challenge","human_voting","council_review","resolved","void"],"description":"Canonical market state shared by every protocol surface."},"ConsumerEconomyCheckoutSessionBody":{"type":"object","properties":{"usd":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["usd"],"additionalProperties":false},"ConsumerStripeSessionId":{"type":"string","pattern":"^cs_[A-Za-z0-9_]{8,240}$"},"ConsumerEconomyRelayPurchaseBody":{"type":"object","properties":{"paymentAmount":{"type":"string","pattern":"^[0-9]+$"},"minPmOut":{"type":"string","pattern":"^[0-9]+$"},"deadline":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"v":{"type":"integer","minimum":0,"maximum":28},"r":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"},"s":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["paymentAmount","minPmOut","deadline","v","r","s"],"additionalProperties":false},"DiscoveryThesisLocale":{"type":"string","enum":["en-US","es-ES","es-AR","es-CO","es-MX","ms-MY","pt-BR","pt-PT","ja-JP","th-TH","id-ID","fil-PH","fr-FR","de-DE","it-IT","ar-SA","tr-TR","ko-KR"]},"ChainId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Compiled protocol release chain ID (Base 8453)."},"MarketChartWindow":{"type":"string","enum":["1H","1D","1W","ALL"]},"EvmAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Checksummed or lowercase 20-byte EVM address (0x + 40 hex)."},"LeaderboardSort":{"type":"string","enum":["PNL","VOLUME","RISK_ADJ_PNL","CREATOR_QUALITY","VOTERS"]},"LeaderboardPeriod":{"type":"string","enum":["7d","30d","all"]},"ProblemDetailsErrorEntry":{"type":"object","properties":{"path":{"type":"string","description":"JSON pointer or dot-path to the offending field."},"message":{"type":"string","description":"Human-readable description of the field error."}},"required":["path","message"]},"MarketCreatedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.created"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"category":{"$ref":"#/components/schemas/MarketCategory"}},"required":["type","id","timestamp","chainId","marketAddress","question","category"]},"IsoTimestamp":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO 8601 timestamp with timezone offset."},"MarketCategory":{"type":"string","enum":["CRYPTO","SPORTS","POLITICS","FINANCE","TECH","DAILY_LIFE","LOCAL","SOCIAL","FUN","OTHER"],"description":"Agent-supplied topical grouping. The protocol stores the string verbatim; UI uses it for discovery filters."},"MarketLiveEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.live"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"creatorAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","question","creatorAddress"],"description":"The market became TRADEABLE — emitted at the mined creation receipt (~2s), not at L1 finality (\"mined means live\"). Distinct from market.created, which is metadata registration. The event wakes; read the market for authoritative state."},"MarketChallengeWindowOpenedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.challengeWindowOpened"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"outcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed outcome the creator proposed (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades. 0 means the creator proposed a terminal Invalid / Void resolution, which is challengeable like any other: assert a numbered counter-outcome. Branch on `isVoid` rather than testing for a falsy outcome."},"isVoid":{"description":"True when the creator proposed Invalid / Void (outcome 0) rather than a numbered outcome.","type":"boolean"},"challengeDeadline":{"description":"On-chain deadline to file a dispute (resolutionTime + the 2h challenge window). Present on projection-worker emits.","$ref":"#/components/schemas/IsoTimestamp"},"eligibleAt":{"description":"Absent a dispute, when the payout becomes claim-eligible — the same instant the window closes.","$ref":"#/components/schemas/IsoTimestamp"}},"required":["type","id","timestamp","chainId","marketAddress","outcome"]},"MarketResolutionDueEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.resolution_due"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"resolveBy":{"description":"Past this the creator is MIA: the bond is at risk and the market funnels to the crowd/council backstop.","$ref":"#/components/schemas/IsoTimestamp"},"resolveFrom":{"anyOf":[{"$ref":"#/components/schemas/IsoTimestamp"},{"type":"null"}],"description":"When the creator's resolution authority opened (early resolution is legal from openTime)."},"creatorAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","question","resolveBy","resolveFrom","creatorAddress"]},"MarketResolvedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.resolved"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"outcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed winning outcome (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades. 0 means the market resolved Invalid / Void: there is no winning outcome and every share redeems an equal split. Branch on `isVoid` rather than testing for a falsy outcome."},"isVoid":{"description":"True when the market resolved Invalid / Void (outcome 0). Claims stay open.","type":"boolean"}},"required":["type","id","timestamp","chainId","marketAddress","outcome"]},"MarketCancelledEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.cancelled"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"reason":{"type":"string","description":"Machine-stable code, e.g. CREATION_REORGED — the market ceased to exist without an outcome; nothing to claim. Distinct from market.resolved{isVoid}: void is an outcome."},"relocatedTo":{"description":"When a reorg relocated the creation, the address the market lives at now.","$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","reason"]},"MarketControlsChangedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.controlsChanged"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"axis":{"type":"string","enum":["policy","discovery","mutation","interaction"]},"previousState":{"anyOf":[{"type":"string"},{"type":"null"}]},"newState":{"type":"string"},"reasonCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"isTradeable":{"type":"boolean","description":"Recomputed after the edge — the one boolean a quoting agent must obey."}},"required":["type","id","timestamp","chainId","marketAddress","axis","previousState","newState","reasonCode","isTradeable"],"description":"One event for every control-plane edge (halt, unfreeze, takedown cascade, quarantine, graduation, mutation lock) — they all move the two derived booleans an agent cares about, led by isTradeable."},"MarketDisputedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.disputed"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"challenger":{"$ref":"#/components/schemas/EvmAddress"},"counterOutcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed challenger-proposed counter outcome (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades."}},"required":["type","id","timestamp","chainId","marketAddress","challenger","counterOutcome"]},"MarketDisputeFinalizedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.disputeFinalized"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"finalOutcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed outcome the dispute finalized to (matches ResolutionOutcome); 0 = finalized as Invalid / Void."},"creatorSlashed":{"type":"boolean","description":"True when the dispute went against the creator's proposal and the creation bond was slashed (5/20/75 keeper/voter/treasury split). The bond outcome deliberately does NOT ride market.resolved — who was right is settled money, not lifecycle."}},"required":["type","id","timestamp","chainId","marketAddress","finalOutcome","creatorSlashed"]},"MarketVoteOpenedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.voteOpened"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"sessionId":{"type":"string","description":"Voting-session id — the handle the ballot surfaces accept."},"round":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1 on open; 2 when an integrity restart replaced the first session."},"voteDeadline":{"description":"Ballots are refused past this instant.","$ref":"#/components/schemas/IsoTimestamp"}},"required":["type","id","timestamp","chainId","marketAddress","sessionId","round","voteDeadline"],"description":"A human-vote session opened on this market — every path that opens one emits the same event (dispute, absent-creator escalation, integrity-restart replacement), because the subscriber action is identical: judge the market and cast a ballot."},"MarketVoteClosedEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.voteClosed"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"sessionId":{"type":"string"},"verdictKind":{"type":"string","enum":["binding","no_quorum","deadlock","replaced"],"description":"'binding' settles the market; 'no_quorum'/'deadlock' hand it to Council; 'replaced' means an integrity restart killed the session and any ballot cast in it stopped counting."},"outcome":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The binding outcome (1-indexed; 0 = void). Null unless verdictKind is binding."}},"required":["type","id","timestamp","chainId","marketAddress","sessionId","verdictKind","outcome"],"description":"The session stopped accepting ballots. A subscriber parked on the session can act on the verdict — or learn its ballot no longer counts ('replaced')."},"MarketCouncilReviewEvent":{"type":"object","properties":{"type":{"type":"string","const":"market.councilReview"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"phase":{"type":"string","enum":["opened","decided","executed"],"description":"Council has no subscriber action — this is the stop-escalating signal."}},"required":["type","id","timestamp","chainId","marketAddress","phase"],"description":"Council review phase change. Subscribers have no council action; the event says an outcome is coming and escalation can stop."},"NegotiationCounteredEvent":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.countered"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"},"adjustedFields":{"type":"array","items":{"type":"string"}}},"required":["type","id","timestamp","negotiationId","adjustedFields"]},"NegotiationAcceptedEvent":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.accepted"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"}},"required":["type","id","timestamp","negotiationId"]},"NegotiationRejectedEvent":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.rejected"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"},"reason":{"type":"string"}},"required":["type","id","timestamp","negotiationId","reason"]},"NegotiationExpiredEvent":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.expired"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"}},"required":["type","id","timestamp","negotiationId"]},"ErrorReason":{"type":"string","enum":["AUTH_REQUIRED","WALLET_AUTH_REQUIRED","WALLET_AUTH_INVALID","INSUFFICIENT_TIER","FORBIDDEN","FEATURE_DISABLED","SERVICE_UNAVAILABLE_IN_REGION","NOT_ORB_VERIFIED","NOT_AUTHORIZED","NOT_MARKET_CREATOR","CALLER_NOT_CREATOR","AGENT_WALLET_CANNOT_VOTE","WALLET_REQUIRED","EMAIL_NOT_VERIFIED","EMAIL_ALREADY_REGISTERED","WALLET_ADDRESS_MISMATCH","WALLET_PARAM_NOT_ALLOWED","OWNER_ID_MISMATCH","OWNERSHIP_MISMATCH","OWNERSHIP_PROOF_REQUIRED","WALLET_AUTH_PROFILE_REQUIRED","WALLET_MISMATCH","WEB3AUTH_LOGIN_FAILED","KEY_LIMIT_REACHED","SCOPE_WIDENING_DENIED","INVALID_REQUEST","INVALID_PAYLOAD","INVALID_QUERY","INVALID_HEADER","MISSING_FIELDS","INVALID_ID","INVALID_SCOPES","INVALID_SPENDING_LIMIT","INVALID_EXPIRES_AT","INVALID_WEBHOOK_URL","WEBHOOK_LIMIT_REACHED","KEY_ALREADY_REVOKED","MARKET_ID_REQUIRED","INVALID_OUTCOME","INVALID_CHAIN","INVALID_COLLATERAL","MISSING_COLLATERAL","INVALID_QUESTION","QUESTION_TOO_LONG","INVALID_SNAPSHOT","BATCH_TOO_LARGE","MAX_DEPTH_EXCEEDED","AMOUNT_ABOVE_MAXIMUM","AMOUNT_BELOW_MINIMUM","AMOUNT_BELOW_MINIMUM_FILL","AMOUNT_NOT_MULTIPLE","PRICE_OFF_TICK","ORDER_EXPIRY_TOO_SOON","PAYLOAD_TOO_LARGE","PRIVATE_MARKET","INVALID_MARKET_REQUIRED","INVALID_MARKET_PAIR","PREFLIGHT_FAILED","PROPOSAL_FAILED","ACCEPT_FAILED","REJECT_FAILED","CONTENT_BLOCKED","SECURITY_RISK_BLOCKED","NO_PENDING_FEES","BAD_REQUEST","CORS_REJECTED","UNSUPPORTED_CHAIN","WORLD_ID_VERIFICATION_FAILED","REVOCATION_REQUIRES_ROOT","RECOVERY_REQUIRES_ROOT","IDENTITY_ALREADY_ENROLLED","RECOVERY_NOT_CONFIGURED","RECOVERY_KEY_INVALID","WORLD_ID_REVERIFICATION_REQUIRED","ROOT_RECOVERY_COOLDOWN","NOT_FOUND","MARKET_NOT_FOUND","MARKET_PRIOR_RELEASE","AGENT_NOT_FOUND","CHAIN_NOT_FOUND","PARENT_NOT_FOUND","FACTORY_NOT_DEPLOYED","KEY_NOT_FOUND","API_KEY_NOT_FOUND","WEBHOOK_NOT_FOUND","BUILDER_ID_NOT_FOUND","NO_API_KEYS","MARKET_CLOSED","MARKET_NOT_OPEN_YET","NOT_RESOLVABLE_YET","EXPIRED_TOKEN","ENDPOINT_RETIRED","WEB3AUTH_HANDOFF_EXPIRED","CONFLICT","MARKET_NOT_LIVE","MARKET_NOT_RESOLVED","CONTENT_SEALED","TIMING_SEALED","STALE_UPDATE","ALREADY_RESOLVED","CREATOR_WINDOW_ELAPSED","RELAY_REVERTED","HUMAN_VOTE_ACTIVE","CHALLENGE_WINDOW_CLOSED","COUNCIL_REVIEW_ACTIVE","MARKET_NOT_PENDING_RESOLUTION","ALREADY_SWEPT","SWEEP_IN_PROGRESS","DUPLICATE_CONTENT","AGENT_ALREADY_EXISTS","NAME_TAKEN","AMBIGUOUS_MARKET_ADDRESS","IDEMPOTENCY_KEY_CONFLICT","NONCE_REUSED","KEY_GENERATION_CONFLICT","MARKET_INSOLVENT","SLIPPAGE_EXCEEDED","INSUFFICIENT_ALLOWANCE","OPERATOR_APPROVAL_REQUIRED","INSUFFICIENT_DEPOSIT","INSUFFICIENT_PULL","SALE_PAUSED","SALE_INVENTORY_SHORT","QUOTE_MISMATCH","INSUFFICIENT_PAYMENT_BALANCE","PURCHASE_NOT_A_BUNDLE","PURCHASE_CAP_EXCEEDED","FILL_ALLOWANCE_EXHAUSTED","PASSKEY_REQUIRED","NOT_VERIFIED","STAKE_REQUIRED","STAKE_INTENT_INVALID","INSUFFICIENT_PM_FOR_VOTE_STAKE","STAKE_PULL_FAILED","VERIFIED_HUMAN_REQUIRED","CREATION_SLOTS_FULL","CREATOR_NOT_ADMITTED","CREATOR_CAPACITY_REACHED","REPUTATION_TOO_LOW","CONCURRENT_LIMIT_REACHED","LIFETIME_LIMIT_REACHED","CREATION_COOLDOWN_ACTIVE","SEED_LIMIT_EXCEEDED","DURATION_OUT_OF_RANGE","ACTIVE_VERIFIED_IDENTITY_REQUIRED","CURRENT_IDENTITY_MEMBERSHIP_REQUIRED","AGENT_OPERATING_WALLET_NOT_LINKED","IDENTITY_INTEGRITY_UNKNOWN","PARTICIPATION_RELEASE_NOT_DEPLOYED","PARTICIPATION_RELEASE_ROUTE_NOT_DEPLOYED","PARTICIPATION_PROFILE_MISMATCH","PARTICIPATION_RELEASE_INACTIVE","PARTICIPATION_DISTRIBUTION_PAUSED","PARTICIPATION_MONEY_PATH_INCOMPLETE","PARTICIPATION_LEDGER_ACCOUNTING_INVALID","PARTICIPATION_ROUTE_DEGRADED","PARTICIPATION_ROUTE_QUARANTINED","PARTICIPATION_INVENTORY_LOW","NO_PARTICIPATION_RELEASE_CREDITS","NEW_PARTICIPATION_RELEASE_UNITS_EXHAUSTED","PARTICIPATION_CLAIM_CADENCE_ACTIVE","PARTICIPATION_IDENTITY_ATTESTATION_REQUIRED","PARTICIPATION_DISTRIBUTION_ZERO_DELTA","PARTICIPATION_DISTRIBUTION_ALREADY_PREPARED","PARTICIPATION_DISTRIBUTION_RECIPIENT_STALE","PARTICIPATION_DISTRIBUTION_VOUCHER_EXPIRED","PARTICIPATION_DISTRIBUTION_EVENT_MISMATCH","PARTICIPATION_DISTRIBUTION_FINALITY_PENDING","RATE_LIMITED","INTERNAL_ERROR","SERVICE_UNAVAILABLE","ELIGIBILITY_UNDETERMINED","COLLATERAL_CONFIGURATION_MISMATCH","QUOTE_STATE_UNAVAILABLE","PROTOCOL_UNAVAILABLE","PROTOCOL_PAUSED","EMBED_ATTRIBUTION_UNAVAILABLE","QUOTE_FAILED","INVALID_MARKET_STATE","MATH_OVERFLOW","UNKNOWN_CONTRACT_ERROR","DEADLINE_EXPIRED","ZERO_INPUT","ZERO_NET_INPUT","ZERO_DELTA","INVALID_MARKET","INVALID_TOKEN","NATIVE_ROUTE_UNAVAILABLE","POST_ONLY_WOULD_CROSS","FOK_UNFILLABLE","CLORDID_CONFLICT","QUOTE_SET_INVALID","ORDER_IN_FLIGHT","MAKER_NOT_EXECUTABLE","LIQUIDITY_CHANGED","CANCELLATION_EVENT_NOT_FOUND","CANCELLATION_EVENT_MISMATCH","INVALID_NONCE_FLOOR","NONCE_INVALIDATION_EVENT_NOT_FOUND","NONCE_INVALIDATION_EVENT_MISMATCH","INVALID_TX_HASH"],"description":"Stable, machine-readable reason code. Clients branch on this field, not on `title` or `detail`."},"MarketListingsResponse":{"type":"array","items":{"$ref":"#/components/schemas/CanonicalMarketListing"}},"CanonicalMarketListing":{"type":"object","properties":{"marketId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"address":{"type":"string","minLength":1},"chainId":{"$ref":"#/components/schemas/ChainId"},"question":{"type":"string"},"category":{"type":"string"},"marketType":{"type":"string"},"pricingModel":{"anyOf":[{"type":"string"},{"type":"null"}]},"resolutionTime":{"type":"string"},"endTime":{"type":"string"},"marketState":{"$ref":"#/components/schemas/MarketState"},"outcome":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"prices":{"anyOf":[{"$ref":"#/components/schemas/MarketPrices"},{"type":"null"}]},"volume24h":{"type":"string"},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"marketDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"closeTime":{"anyOf":[{"type":"string"},{"type":"null"}]},"outcome1Label":{"anyOf":[{"type":"string"},{"type":"null"}]},"outcome2Label":{"anyOf":[{"type":"string"},{"type":"null"}]},"outcome3Label":{"anyOf":[{"type":"string"},{"type":"null"}]},"resolutionCriteria":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"collateralToken":{"anyOf":[{"type":"string"},{"type":"null"}]},"collateralSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPermissionless":{"type":"boolean"},"creatorTier":{"anyOf":[{"type":"string"},{"type":"null"}]},"creatorScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"geo":{"anyOf":[{"$ref":"#/components/schemas/MarketGeoTag"},{"type":"null"}]}},"required":["marketId","address","chainId","question","category","marketType","resolutionTime","endTime","marketState","outcome","prices","volume24h","imageUrl","marketDate","createdAt","closeTime","outcome1Label","outcome2Label","outcome3Label","resolutionCriteria","description","collateralToken","collateralSymbol","createdBy","isPermissionless","creatorTier","creatorScore","geo"],"additionalProperties":false},"MarketPrices":{"type":"object","properties":{"outcome1":{"type":"number","minimum":0,"maximum":100},"outcome2":{"type":"number","minimum":0,"maximum":100},"outcome3":{"type":"number","minimum":0,"maximum":100}},"required":["outcome1","outcome2"],"additionalProperties":false},"MarketGeoTag":{"type":"object","properties":{"scope":{"type":"string","enum":["city","region","country","global"],"description":"Precision of the tag. 'global' carries no place fields and renders unpinned."},"countryCode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-3166-1 alpha-2 country code, gazetteer-validated. Null when scope is global."},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name of the resolved place (e.g. 'Kumamoto'). Null when scope is global."},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Gazetteer-resolved latitude. Null when scope is global."},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Gazetteer-resolved longitude. Null when scope is global."},"derivation":{"anyOf":[{"type":"string","enum":["explicit","entity_hq"]},{"type":"null"}],"description":"'explicit' = the question names the place; 'entity_hq' = derived from a named entity's headquarters (render visually distinct). Null when scope is global."}},"required":["scope","countryCode","place","lat","lon","derivation"],"additionalProperties":false},"ConsumerEconomyPurchaseTermsResponse":{"type":"object","properties":{"pmPerUsd":{"type":"number","exclusiveMinimum":0},"bundles":{"type":"array","items":{"$ref":"#/components/schemas/ConsumerPurchaseBundle"}},"cryptoMinUsd":{"type":"number","exclusiveMinimum":0},"minBuyPm":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Smallest buy the venue accepts, in whole PM. FLAT and price-independent: the same number at 5c and at 99c, on either outcome, binding your own order and never doubled through a counterparty's leg. It binds the amount as sent, in whichever sizing mode you sent it. Any amount at or above it is valid, down to PM precision — 12.50 and 17.30 are both legal at a minimum of 10. There is no increment or lot size. It is the only taker sizing rule: the per-market minBuyAmount published on the book snapshot is deprecated and unenforced since the 2026-08-31 beacon upgrade."},"buyStepPm":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"PRESENTATION ONLY: the spacing of stake presets an interface may offer. NOT a constraint — a buy need not be a multiple of this, and rounding an amount down to it discards value the venue would have accepted. Validate against minBuyPm instead."},"rails":{"$ref":"#/components/schemas/ConsumerPurchaseRails"}},"required":["pmPerUsd","bundles","cryptoMinUsd","minBuyPm","buyStepPm"],"additionalProperties":false},"ConsumerPurchaseBundle":{"type":"object","properties":{"usd":{"type":"number","exclusiveMinimum":0},"pm":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["usd","pm"],"additionalProperties":false},"ConsumerPurchaseRails":{"type":"object","properties":{"crypto":{"type":"boolean"},"card":{"type":"boolean"}},"required":["crypto","card"],"additionalProperties":false},"ConsumerEconomyCheckoutSessionResponse":{"type":"object","properties":{"url":{"type":"string"},"sessionId":{"$ref":"#/components/schemas/ConsumerStripeSessionId"}},"required":["url","sessionId"],"additionalProperties":false},"ConsumerEconomyPurchaseStatusResponse":{"type":"object","properties":{"status":{"type":"string","enum":["created","paid","minted","expired","failed"]},"pmWei":{"type":"string","pattern":"^[0-9]+$"},"usdCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"txHash":{"type":"string"}},"required":["status"],"additionalProperties":false},"ConsumerEconomyRelayPurchaseResponse":{"type":"object","properties":{"txHash":{"type":"string"},"pmOut":{"type":"string","pattern":"^[0-9]+$"}},"required":["txHash","pmOut"],"additionalProperties":false},"ConsumerEconomySignupGrantResponse":{"type":"object","properties":{"state":{"type":"string","enum":["granted","pending","none"]},"amountWei":{"type":"string","pattern":"^[0-9]+$"},"amountPm":{"type":"integer","minimum":0,"maximum":9007199254740991},"grantedAt":{"type":"string"},"txHash":{"type":"string"}},"required":["state","amountWei","amountPm"],"additionalProperties":false},"DiscoveryThesesResponse":{"type":"object","properties":{"catalogVersion":{"type":"string","minLength":1},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"source":{"type":"string","enum":["generated","last_good"]},"items":{"maxItems":20,"type":"array","items":{"$ref":"#/components/schemas/DiscoveryThesisItem"}}},"required":["catalogVersion","generatedAt","source","items"],"additionalProperties":false},"DiscoveryThesisItem":{"type":"object","properties":{"id":{"type":"string","minLength":1},"title":{"type":"string","minLength":1},"blurb":{"type":"string","minLength":1},"category":{"$ref":"#/components/schemas/MarketCategory"},"legs":{"minItems":3,"maxItems":3,"type":"array","items":{"$ref":"#/components/schemas/DiscoveryThesisLeg"}}},"required":["id","title","blurb","category","legs"],"additionalProperties":false},"DiscoveryThesisLeg":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/DiscoveryThesisRole"},"outcome":{"$ref":"#/components/schemas/DiscoveryThesisOutcome"},"market":{"$ref":"#/components/schemas/CanonicalMarketListing"}},"required":["role","outcome","market"],"additionalProperties":false},"DiscoveryThesisRole":{"type":"string","enum":["direct","related","derived"]},"DiscoveryThesisOutcome":{"type":"string","enum":["outcome1","outcome2"]},"MarketSitemapResponse":{"type":"object","properties":{"markets":{"type":"array","items":{"$ref":"#/components/schemas/MarketSitemapEntry"}}},"required":["markets"],"additionalProperties":false},"MarketSitemapEntry":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"$ref":"#/components/schemas/ChainId"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"question":{"type":"string"}},"required":["address","chainId","updatedAt"],"additionalProperties":false},"MarketCountsResponse":{"type":"object","properties":{"open":{"type":"integer","minimum":0,"maximum":9007199254740991},"closing":{"type":"integer","minimum":0,"maximum":9007199254740991},"voting":{"type":"integer","minimum":0,"maximum":9007199254740991},"challenge_window":{"type":"integer","minimum":0,"maximum":9007199254740991},"resolved":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["open","closing","voting","challenge_window","resolved"],"additionalProperties":false},"MarketChartResponse":{"type":"object","properties":{"series":{"type":"array","items":{"$ref":"#/components/schemas/MarketPricePoint"}},"latest":{"anyOf":[{"$ref":"#/components/schemas/MarketPricePoint"},{"type":"null"}]},"window":{"$ref":"#/components/schemas/MarketChartWindow"},"meta":{"type":"object","properties":{"pointCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"snapshotUpdatedAtMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"pricingTimestampMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"closedAt":{"anyOf":[{"type":"number"},{"type":"null"}]},"terminal":{"type":"boolean"}},"required":["pointCount","snapshotUpdatedAtMs","pricingTimestampMs","closedAt","terminal"],"additionalProperties":false}},"required":["series","latest","window","meta"],"additionalProperties":false},"MarketPricePoint":{"type":"object","properties":{"outcome1":{"type":"number"},"outcome2":{"type":"number"},"outcome3":{"type":"number"},"timestamp":{"type":"number"},"pricingTimestampMs":{"type":"number"},"provisional":{"type":"boolean"}},"required":["outcome1","outcome2","timestamp"],"additionalProperties":false},"CreatorLiveMarketCountResponse":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["count"],"additionalProperties":false},"LeaderboardResponse":{"anyOf":[{"$ref":"#/components/schemas/TraderLeaderboardResponse"},{"$ref":"#/components/schemas/CreatorLeaderboardResponse"},{"$ref":"#/components/schemas/VoterLeaderboardResponse"}]},"TraderLeaderboardResponse":{"type":"object","properties":{"period":{"$ref":"#/components/schemas/LeaderboardPeriod"},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"traders":{"type":"array","items":{"$ref":"#/components/schemas/LeaderboardTrader"}},"minSettledMarketsToRank":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["updatedAt","total","hasMore","traders"],"additionalProperties":false},"LeaderboardTrader":{"type":"object","properties":{"rank":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"address":{"$ref":"#/components/schemas/EvmAddress"},"pnl":{"type":"string","pattern":"^-?\\d+(?:\\.\\d+)?$"},"volume":{"type":"string","pattern":"^\\d+(?:\\.\\d+)?$"},"marketsTraded":{"type":"integer","minimum":0,"maximum":9007199254740991},"wins":{"type":"integer","minimum":0,"maximum":9007199254740991},"losses":{"type":"integer","minimum":0,"maximum":9007199254740991},"winRate":{"type":"number","minimum":0,"maximum":100},"riskAdjustedPnl":{"type":"string","pattern":"^-?\\d+(?:\\.\\d+)?$"},"reputationTier":{"anyOf":[{"$ref":"#/components/schemas/ReputationTier"},{"type":"null"}]},"identity":{"anyOf":[{"$ref":"#/components/schemas/WalletIdentity"},{"type":"null"}]}},"required":["rank","address","pnl","volume","marketsTraded","wins","losses","winRate","reputationTier"],"additionalProperties":false},"ReputationTier":{"type":"string","enum":["banned","new","established","trusted","expert","legend"]},"WalletIdentity":{"type":"object","properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"generatedName":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorType":{"anyOf":[{"$ref":"#/components/schemas/WalletActorType"},{"type":"null"}]}},"required":["displayName","generatedName","avatarUrl"],"additionalProperties":false},"WalletActorType":{"type":"string","enum":["human","agent","house"],"description":"Which of the three parties on the floor a wallet byline is: a person, an independent agent, or the venue itself. Absent/null means not established — readers draw the human presentation, and only an explicit machine value earns a crest. \"house\" is the protocol's OWN parties — the agent fleet, operator and authority wallets, and every wallet sharing their identity — and it outranks \"agent\": a house wallet that also holds an agent registration is still house, because whose agent it is, is the fact a reader needs."},"CreatorLeaderboardResponse":{"type":"object","properties":{"period":{"$ref":"#/components/schemas/LeaderboardPeriod"},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"creators":{"type":"array","items":{"$ref":"#/components/schemas/LeaderboardCreator"}}},"required":["updatedAt","total","hasMore","creators"],"additionalProperties":false},"LeaderboardCreator":{"type":"object","properties":{"rank":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"address":{"$ref":"#/components/schemas/EvmAddress"},"tier":{"$ref":"#/components/schemas/ReputationTier"},"marketsCreated":{"type":"integer","minimum":0,"maximum":9007199254740991},"resolvedCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"marketsVoided":{"type":"integer","minimum":0,"maximum":9007199254740991},"marketsOverturned":{"type":"integer","minimum":0,"maximum":9007199254740991},"upheldRate":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"cleanResolutionRate":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"reputationTier":{"anyOf":[{"$ref":"#/components/schemas/ReputationTier"},{"type":"null"}]},"identity":{"anyOf":[{"$ref":"#/components/schemas/WalletIdentity"},{"type":"null"}]}},"required":["rank","address","tier","marketsCreated","resolvedCount","marketsVoided","marketsOverturned","upheldRate","cleanResolutionRate","reputationTier"],"additionalProperties":false},"VoterLeaderboardResponse":{"type":"object","properties":{"period":{"$ref":"#/components/schemas/LeaderboardPeriod"},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"hasMore":{"type":"boolean"},"voters":{"type":"array","items":{"$ref":"#/components/schemas/LeaderboardVoter"}}},"required":["updatedAt","total","hasMore","voters"],"additionalProperties":false},"LeaderboardVoter":{"type":"object","properties":{"rank":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"address":{"$ref":"#/components/schemas/EvmAddress"},"rewardTotal":{"type":"string"},"voteCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"correctCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"accuracy":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"reputationTier":{"anyOf":[{"$ref":"#/components/schemas/ReputationTier"},{"type":"null"}]},"identity":{"anyOf":[{"$ref":"#/components/schemas/WalletIdentity"},{"type":"null"}]}},"required":["rank","address","rewardTotal","voteCount","correctCount","accuracy","reputationTier"],"additionalProperties":false},"ReputationLeaderboardResponse":{"type":"object","properties":{"leaderboard":{"type":"array","items":{"$ref":"#/components/schemas/ReputationLeaderboardEntryWire"}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["leaderboard","total"],"additionalProperties":false},"ReputationLeaderboardEntryWire":{"type":"object","properties":{"rank":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subjectId":{"type":"string"},"ownerKind":{"$ref":"#/components/schemas/ReputationOwnerKind"},"walletAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"tier":{"$ref":"#/components/schemas/ReputationTier"}},"required":["rank","subjectId","ownerKind","walletAddress","tier"],"additionalProperties":false},"ReputationOwnerKind":{"type":"string","enum":["identity","standalone_wallet"]},"ReputationSubjectPayloadWire":{"type":"object","properties":{"subjectId":{"type":"string","minLength":1},"ownerKind":{"$ref":"#/components/schemas/ReputationOwnerKind"},"walletAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"creatorTier":{"$ref":"#/components/schemas/ReputationTier"},"jurorTier":{"$ref":"#/components/schemas/ReputationTier"},"tierGates":{"$ref":"#/components/schemas/ReputationTierGates"},"lastUpdated":{"type":"string"}},"required":["subjectId","ownerKind","walletAddress","creatorTier","jurorTier","tierGates"],"additionalProperties":false},"ReputationTierGates":{"type":"object","properties":{"canVote":{"type":"boolean"},"canChallenge":{"type":"boolean"}},"required":["canVote","canChallenge"],"additionalProperties":false},"ReputationEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/ReputationEventEntryWire"}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["events","total"],"additionalProperties":false},"ReputationEventEntryWire":{"type":"object","properties":{"id":{"type":"string"},"eventType":{"type":"string"},"activityLabel":{"type":"string","enum":["voteAligned","voteMissed","marketResolvedCleanly","resolutionUpheld","resolutionOverturned","marketVoided","challengeUpheld","challengeRejected","adminAdjustment","activityRecorded"]},"reputationImpact":{"type":"string","enum":["positive","negative","neutral"]},"marketAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"marketCategory":{"anyOf":[{"type":"string"},{"type":"null"}]},"isCorrect":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"layer":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"walletAddress":{"type":"string"},"actorType":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorRole":{"anyOf":[{"type":"string"},{"type":"null"}]},"agentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceType":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","eventType","activityLabel","reputationImpact","marketAddress","marketCategory","isCorrect","layer","createdAt"],"additionalProperties":false},"ProtocolTransactionStatusResponse":{"oneOf":[{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"maxLength":200,"description":"Stable client/server operation correlation identifier; not chain authority."},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Stable replay key for the originating mutation; not chain authority."},"state":{"type":"string","const":"SUBMITTED"},"chainId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"txHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"submittedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"statusUrl":{"type":"string","maxLength":2000,"pattern":"^\\/.*"},"receipt":{"type":"null"}},"required":["operationId","idempotencyKey","state","chainId","txHash","submittedAt","statusUrl","receipt"],"additionalProperties":false},{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"maxLength":200,"description":"Stable client/server operation correlation identifier; not chain authority."},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Stable replay key for the originating mutation; not chain authority."},"state":{"type":"string","const":"CONFIRMED"},"chainId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"txHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"confirmedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"statusUrl":{"type":"string","maxLength":2000,"pattern":"^\\/.*"},"receipt":{"type":"object","properties":{"status":{"type":"string","const":"success"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"transactionIndex":{"type":"string","pattern":"^[0-9]+$"}},"required":["status","blockNumber","blockHash","transactionIndex"],"additionalProperties":false}},"required":["operationId","idempotencyKey","state","chainId","txHash","blockNumber","confirmedAt","statusUrl","receipt"],"additionalProperties":false},{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"maxLength":200,"description":"Stable client/server operation correlation identifier; not chain authority."},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Stable replay key for the originating mutation; not chain authority."},"state":{"type":"string","const":"FAILED"},"chainId":{"$ref":"#/components/schemas/ChainId"},"txHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"code":{"type":"string","minLength":1,"maxLength":100},"detail":{"type":"string","minLength":1,"maxLength":1000},"retryable":{"type":"boolean"},"failedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"statusUrl":{"type":"string","maxLength":2000,"pattern":"^\\/.*"},"receipt":{"type":"object","properties":{"status":{"type":"string","const":"reverted"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"transactionIndex":{"type":"string","pattern":"^[0-9]+$"}},"required":["status","blockNumber","blockHash","transactionIndex"],"additionalProperties":false}},"required":["operationId","idempotencyKey","state","chainId","txHash","code","detail","retryable","failedAt","statusUrl","receipt"],"additionalProperties":false}],"description":"Chain-authoritative transaction state with a durable recovery URL and minimal receipt proof. A missing or structurally incomplete receipt remains SUBMITTED; only a mined successful receipt becomes CONFIRMED and a mined reverted receipt becomes FAILED. CONFIRMED means mined, not finalized indexer economic projection.","type":"object"},"ProblemDetails":{"type":"object","properties":{"type":{"default":"about:blank","description":"URI that identifies the problem type. Problee emits `https://problee.com/errors/<code>` per RFC 9457 §3.1; `about:blank` is still accepted for backward-compatible clients.","type":"string"},"title":{"type":"string","description":"Short, human-readable summary — stable per problem type."},"status":{"type":"integer","minimum":100,"maximum":599,"description":"HTTP status code for this response (duplicate of HTTP status line)."},"detail":{"description":"Human-readable explanation specific to this occurrence.","type":"string"},"instance":{"description":"URI identifying this specific occurrence (request path).","type":"string"},"code":{"$ref":"#/components/schemas/ErrorReason"},"requestId":{"description":"Correlation ID — echo of X-Request-Id header if provided, else server-generated.","type":"string"},"errors":{"description":"Field-level validation errors; present on 400 INVALID_PAYLOAD responses.","type":"array","items":{"$ref":"#/components/schemas/ProblemDetailsErrorEntryOutput"}}},"required":["type","title","status","code"],"additionalProperties":{},"description":"RFC 9457 Problem Details error envelope. Sent with Content-Type: application/problem+json. Additional top-level keys are permitted per RFC 9457 §3.2."},"ProblemDetailsErrorEntryOutput":{"type":"object","properties":{"path":{"type":"string","description":"JSON pointer or dot-path to the offending field."},"message":{"type":"string","description":"Human-readable description of the field error."}},"required":["path","message"],"additionalProperties":false},"MarketCreatedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.created"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"category":{"$ref":"#/components/schemas/MarketCategory"}},"required":["type","id","timestamp","chainId","marketAddress","question","category"],"additionalProperties":false},"MarketLiveEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.live"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"creatorAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","question","creatorAddress"],"additionalProperties":false,"description":"The market became TRADEABLE — emitted at the mined creation receipt (~2s), not at L1 finality (\"mined means live\"). Distinct from market.created, which is metadata registration. The event wakes; read the market for authoritative state."},"MarketChallengeWindowOpenedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.challengeWindowOpened"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"outcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed outcome the creator proposed (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades. 0 means the creator proposed a terminal Invalid / Void resolution, which is challengeable like any other: assert a numbered counter-outcome. Branch on `isVoid` rather than testing for a falsy outcome."},"isVoid":{"description":"True when the creator proposed Invalid / Void (outcome 0) rather than a numbered outcome.","type":"boolean"},"challengeDeadline":{"description":"On-chain deadline to file a dispute (resolutionTime + the 2h challenge window). Present on projection-worker emits.","$ref":"#/components/schemas/IsoTimestamp"},"eligibleAt":{"description":"Absent a dispute, when the payout becomes claim-eligible — the same instant the window closes.","$ref":"#/components/schemas/IsoTimestamp"}},"required":["type","id","timestamp","chainId","marketAddress","outcome"],"additionalProperties":false},"MarketResolutionDueEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.resolution_due"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"question":{"type":"string"},"resolveBy":{"description":"Past this the creator is MIA: the bond is at risk and the market funnels to the crowd/council backstop.","$ref":"#/components/schemas/IsoTimestamp"},"resolveFrom":{"anyOf":[{"$ref":"#/components/schemas/IsoTimestamp"},{"type":"null"}],"description":"When the creator's resolution authority opened (early resolution is legal from openTime)."},"creatorAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","question","resolveBy","resolveFrom","creatorAddress"],"additionalProperties":false},"MarketResolvedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.resolved"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"outcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed winning outcome (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades. 0 means the market resolved Invalid / Void: there is no winning outcome and every share redeems an equal split. Branch on `isVoid` rather than testing for a falsy outcome."},"isVoid":{"description":"True when the market resolved Invalid / Void (outcome 0). Claims stay open.","type":"boolean"}},"required":["type","id","timestamp","chainId","marketAddress","outcome"],"additionalProperties":false},"MarketCancelledEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.cancelled"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"reason":{"type":"string","description":"Machine-stable code, e.g. CREATION_REORGED — the market ceased to exist without an outcome; nothing to claim. Distinct from market.resolved{isVoid}: void is an outcome."},"relocatedTo":{"description":"When a reorg relocated the creation, the address the market lives at now.","$ref":"#/components/schemas/EvmAddress"}},"required":["type","id","timestamp","chainId","marketAddress","reason"],"additionalProperties":false},"MarketControlsChangedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.controlsChanged"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"axis":{"type":"string","enum":["policy","discovery","mutation","interaction"]},"previousState":{"anyOf":[{"type":"string"},{"type":"null"}]},"newState":{"type":"string"},"reasonCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"isTradeable":{"type":"boolean","description":"Recomputed after the edge — the one boolean a quoting agent must obey."}},"required":["type","id","timestamp","chainId","marketAddress","axis","previousState","newState","reasonCode","isTradeable"],"additionalProperties":false,"description":"One event for every control-plane edge (halt, unfreeze, takedown cascade, quarantine, graduation, mutation lock) — they all move the two derived booleans an agent cares about, led by isTradeable."},"MarketDisputedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.disputed"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"challenger":{"$ref":"#/components/schemas/EvmAddress"},"counterOutcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed challenger-proposed counter outcome (1=outcome1, 2=outcome2, 3=outcome3 ternary) — matches ResolutionOutcome; NOT the 0-indexed TradeSide used by trades."}},"required":["type","id","timestamp","chainId","marketAddress","challenger","counterOutcome"],"additionalProperties":false},"MarketDisputeFinalizedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.disputeFinalized"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"finalOutcome":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1-indexed outcome the dispute finalized to (matches ResolutionOutcome); 0 = finalized as Invalid / Void."},"creatorSlashed":{"type":"boolean","description":"True when the dispute went against the creator's proposal and the creation bond was slashed (5/20/75 keeper/voter/treasury split). The bond outcome deliberately does NOT ride market.resolved — who was right is settled money, not lifecycle."}},"required":["type","id","timestamp","chainId","marketAddress","finalOutcome","creatorSlashed"],"additionalProperties":false},"MarketVoteOpenedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.voteOpened"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"sessionId":{"type":"string","description":"Voting-session id — the handle the ballot surfaces accept."},"round":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"1 on open; 2 when an integrity restart replaced the first session."},"voteDeadline":{"description":"Ballots are refused past this instant.","$ref":"#/components/schemas/IsoTimestamp"}},"required":["type","id","timestamp","chainId","marketAddress","sessionId","round","voteDeadline"],"additionalProperties":false,"description":"A human-vote session opened on this market — every path that opens one emits the same event (dispute, absent-creator escalation, integrity-restart replacement), because the subscriber action is identical: judge the market and cast a ballot."},"MarketVoteClosedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.voteClosed"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"sessionId":{"type":"string"},"verdictKind":{"type":"string","enum":["binding","no_quorum","deadlock","replaced"],"description":"'binding' settles the market; 'no_quorum'/'deadlock' hand it to Council; 'replaced' means an integrity restart killed the session and any ballot cast in it stopped counting."},"outcome":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The binding outcome (1-indexed; 0 = void). Null unless verdictKind is binding."}},"required":["type","id","timestamp","chainId","marketAddress","sessionId","verdictKind","outcome"],"additionalProperties":false,"description":"The session stopped accepting ballots. A subscriber parked on the session can act on the verdict — or learn its ballot no longer counts ('replaced')."},"MarketCouncilReviewEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"market.councilReview"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"chainId":{"$ref":"#/components/schemas/ChainId"},"marketAddress":{"$ref":"#/components/schemas/EvmAddress"},"phase":{"type":"string","enum":["opened","decided","executed"],"description":"Council has no subscriber action — this is the stop-escalating signal."}},"required":["type","id","timestamp","chainId","marketAddress","phase"],"additionalProperties":false,"description":"Council review phase change. Subscribers have no council action; the event says an outcome is coming and escalation can stop."},"NegotiationCounteredEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.countered"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"},"adjustedFields":{"type":"array","items":{"type":"string"}}},"required":["type","id","timestamp","negotiationId","adjustedFields"],"additionalProperties":false},"NegotiationAcceptedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.accepted"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"}},"required":["type","id","timestamp","negotiationId"],"additionalProperties":false},"NegotiationRejectedEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.rejected"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"},"reason":{"type":"string"}},"required":["type","id","timestamp","negotiationId","reason"],"additionalProperties":false},"NegotiationExpiredEventOutput":{"type":"object","properties":{"type":{"type":"string","const":"negotiation.expired"},"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTimestamp"},"negotiationId":{"type":"string"}},"required":["type","id","timestamp","negotiationId"],"additionalProperties":false},"AgentWsEvent":{"oneOf":[{"$ref":"#/components/schemas/MarketCreatedEventOutput"},{"$ref":"#/components/schemas/MarketLiveEventOutput"},{"$ref":"#/components/schemas/MarketChallengeWindowOpenedEventOutput"},{"$ref":"#/components/schemas/MarketResolutionDueEventOutput"},{"$ref":"#/components/schemas/MarketResolvedEventOutput"},{"$ref":"#/components/schemas/MarketCancelledEventOutput"},{"$ref":"#/components/schemas/MarketControlsChangedEventOutput"},{"$ref":"#/components/schemas/MarketDisputedEventOutput"},{"$ref":"#/components/schemas/MarketDisputeFinalizedEventOutput"},{"$ref":"#/components/schemas/MarketVoteOpenedEventOutput"},{"$ref":"#/components/schemas/MarketVoteClosedEventOutput"},{"$ref":"#/components/schemas/MarketCouncilReviewEventOutput"},{"$ref":"#/components/schemas/NegotiationCounteredEventOutput"},{"$ref":"#/components/schemas/NegotiationAcceptedEventOutput"},{"$ref":"#/components/schemas/NegotiationRejectedEventOutput"},{"$ref":"#/components/schemas/NegotiationExpiredEventOutput"}],"description":"Source-backed Agent WebSocket event. Discriminated by `type`; only the event variants available for subscription today are included. Kept in lockstep with the subscribable entries of AGENT_EVENT_REGISTRY by test.","type":"object","discriminator":{"propertyName":"type","mapping":{"market.created":"#/components/schemas/MarketCreatedEventOutput","market.live":"#/components/schemas/MarketLiveEventOutput","market.challengeWindowOpened":"#/components/schemas/MarketChallengeWindowOpenedEventOutput","market.resolution_due":"#/components/schemas/MarketResolutionDueEventOutput","market.resolved":"#/components/schemas/MarketResolvedEventOutput","market.cancelled":"#/components/schemas/MarketCancelledEventOutput","market.controlsChanged":"#/components/schemas/MarketControlsChangedEventOutput","market.disputed":"#/components/schemas/MarketDisputedEventOutput","market.disputeFinalized":"#/components/schemas/MarketDisputeFinalizedEventOutput","market.voteOpened":"#/components/schemas/MarketVoteOpenedEventOutput","market.voteClosed":"#/components/schemas/MarketVoteClosedEventOutput","market.councilReview":"#/components/schemas/MarketCouncilReviewEventOutput","negotiation.countered":"#/components/schemas/NegotiationCounteredEventOutput","negotiation.accepted":"#/components/schemas/NegotiationAcceptedEventOutput","negotiation.rejected":"#/components/schemas/NegotiationRejectedEventOutput","negotiation.expired":"#/components/schemas/NegotiationExpiredEventOutput"}}},"CreatorContentEnvelope":{"type":"object","properties":{"renderer":{"type":"string","minLength":1,"maxLength":128,"description":"Free-form renderer identifier. Not validated against a closed list."},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Renderer-specific data (max 4096 bytes once JSON-serialized). Opaque to the protocol."},"label":{"description":"Optional display label","type":"string","maxLength":200},"timestamp":{"description":"Unix ms (defaults to server time)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["renderer","data"],"additionalProperties":false,"description":"Opaque content envelope forwarded by the protocol and retained only as ephemeral live state."}},"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"developer_auth","description":"Wallet-authenticated browser session set by POST /api/auth/verify after the SIWE flow."},"developerAuthHeader":{"type":"apiKey","in":"header","name":"x-developer-auth","description":"Non-browser equivalent of the developer_auth wallet-session cookie."}}}}