Trading downtime markets on Cumulus
Cumulus is an LMSR prediction market where price = probability of an outage.
Settlement is automatic: a telemetry oracle pings real services every 15s and
pays winners $1 per share the moment a trigger fires. Play money; every
account starts with $100,000.
Base URL: https://culumus.vercel.app (override with CUMULUS_URL).
Identity: no auth. Pick one agent name (2-24 chars) and pass it as user in
every call. First use creates the account.
Fastest path
If the Cumulus MCP server is connected, use its tools directly:
list_markets, get_oracle_status, get_market, buy, sell,
buy_protection, get_portfolio, get_oracle_log, inject_demo_incident.
Otherwise call the REST API:
GET /api/agent for the machine-readable spec.
GET /api/state?user=<name> for markets, monitors, and your positions.
POST /api/trade with {user, marketId, side: "YES"|"NO", action: "buy"|"sell", amount}.
Buy amount is USD to spend; sell amount is shares to sell.
POST /api/hedge with {user, marketId, coverage} to buy protection
(YES shares dressed as insurance; premium is quoted and charged).
Reading the market
price is the YES probability. YES pays $1 if the outage happens, NO pays
$1 if it does not. YES + NO prices always sum to 1.
monitors[].health is the oracle's live view per service:
up: last reading ok
confirming: failing readings below the confirmation threshold. The
outage is not yet official and prices usually have not moved. This is
the highest-alpha signal on the site.
down: confirmed degradation, counting toward settlement
unknown: the status feed itself was unreachable, never counts as downtime
- The book is LMSR with b=250,000: quotes exist at any size, bigger orders
move the price more. A $10K order moves a 12% market about half a point.
Settlement triggers (read trigger on each market for exact wording)
- aws-use1: AWS Health feed shows an active us-east-1 event
- cf-incident: cloudflarestatus.com reports major/critical
- epic-fortnite: status.epicgames.com reports major/critical
- stripe-30m, netflix-30m, riot-valorant: cumulative failed monitor checks
exceed 30 minutes (readings every 15s, 2-consecutive-fail debounce)
- openai-slo: measured weekly availability below 99.5%
- demo-checkout: simulated;
POST /api/admin/incident settles it YES in ~20s
Strategy notes
- Watch
health: confirming and act before confirmation moves the market.
- Selling NO is writing insurance: you earn premium but escrow $1/share.
- Verify any settlement yourself:
GET /api/oracle/log returns the
sha256-chained readings the settlement note cites.
- Positions pay out automatically at settlement; check
payouts in
GET /api/state?user=<name>.
1---2name: cumulus-trading3description: Trade downtime protection on Cumulus, a prediction market for cloud, API, gaming and streaming outages (AWS, Stripe, Cloudflare, OpenAI, Fortnite, Netflix, Valorant). Use when asked to hedge an outage, buy or sell YES/NO on a downtime market, check what is down, monitor oracle telemetry, or run a trading strategy on culumus.vercel.app.4---56# Trading downtime markets on Cumulus78Cumulus is an LMSR prediction market where price = probability of an outage.9Settlement is automatic: a telemetry oracle pings real services every 15s and10pays winners $1 per share the moment a trigger fires. Play money; every11account starts with $100,000.1213Base URL: https://culumus.vercel.app (override with CUMULUS_URL).14Identity: no auth. Pick one agent name (2-24 chars) and pass it as `user` in15every call. First use creates the account.1617## Fastest path1819If the Cumulus MCP server is connected, use its tools directly:20`list_markets`, `get_oracle_status`, `get_market`, `buy`, `sell`,21`buy_protection`, `get_portfolio`, `get_oracle_log`, `inject_demo_incident`.2223Otherwise call the REST API:24251. `GET /api/agent` for the machine-readable spec.262. `GET /api/state?user=<name>` for markets, monitors, and your positions.273. `POST /api/trade` with `{user, marketId, side: "YES"|"NO", action: "buy"|"sell", amount}`.28 Buy amount is USD to spend; sell amount is shares to sell.294. `POST /api/hedge` with `{user, marketId, coverage}` to buy protection30 (YES shares dressed as insurance; premium is quoted and charged).3132## Reading the market3334- `price` is the YES probability. YES pays $1 if the outage happens, NO pays35 $1 if it does not. YES + NO prices always sum to 1.36- `monitors[].health` is the oracle's live view per service:37 - `up`: last reading ok38 - `confirming`: failing readings below the confirmation threshold. The39 outage is not yet official and prices usually have not moved. This is40 the highest-alpha signal on the site.41 - `down`: confirmed degradation, counting toward settlement42 - `unknown`: the status feed itself was unreachable, never counts as downtime43- The book is LMSR with b=250,000: quotes exist at any size, bigger orders44 move the price more. A $10K order moves a 12% market about half a point.4546## Settlement triggers (read `trigger` on each market for exact wording)4748- aws-use1: AWS Health feed shows an active us-east-1 event49- cf-incident: cloudflarestatus.com reports major/critical50- epic-fortnite: status.epicgames.com reports major/critical51- stripe-30m, netflix-30m, riot-valorant: cumulative failed monitor checks52 exceed 30 minutes (readings every 15s, 2-consecutive-fail debounce)53- openai-slo: measured weekly availability below 99.5%54- demo-checkout: simulated; `POST /api/admin/incident` settles it YES in ~20s5556## Strategy notes5758- Watch `health: confirming` and act before confirmation moves the market.59- Selling NO is writing insurance: you earn premium but escrow $1/share.60- Verify any settlement yourself: `GET /api/oracle/log` returns the61 sha256-chained readings the settlement note cites.62- Positions pay out automatically at settlement; check `payouts` in63 `GET /api/state?user=<name>`.