From 5e6889ec7b86ddb20b6b85fb74e8bfcaff4fb596 Mon Sep 17 00:00:00 2001 From: Casey Judice Date: Thu, 21 May 2026 22:13:46 -0400 Subject: [PATCH] Static dashboard via GitHub Pages (docs/) + GHA snapshot writes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a phone-friendly public dashboard served from docs/ via GitHub Pages: - docs/index.html, app.js, style.css: monthly + hourly tabs only, no positions/settings (positions stay on the local Mac UI). Reads ./data/scan.json and ./data/hourly.json instead of /api endpoints. - gha_alerts.py also writes both snapshots to docs/data/ each cron tick. - Workflow now commits docs/data/ alongside alerts_state.json. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 --- .github/workflows/alerts.yml | 10 +- docs/.nojekyll | 0 docs/app.js | 656 +++++++++++++++++++++++++++++++++++ docs/data/hourly.json | 1 + docs/data/scan.json | 1 + docs/index.html | 81 +++++ docs/style.css | 378 ++++++++++++++++++++ scripts/gha_alerts.py | 27 +- 8 files changed, 1146 insertions(+), 8 deletions(-) create mode 100644 docs/.nojekyll create mode 100644 docs/app.js create mode 100644 docs/data/hourly.json create mode 100644 docs/data/scan.json create mode 100644 docs/index.html create mode 100644 docs/style.css diff --git a/.github/workflows/alerts.yml b/.github/workflows/alerts.yml index cfaf53982..5c271ee10 100644 --- a/.github/workflows/alerts.yml +++ b/.github/workflows/alerts.yml @@ -35,14 +35,14 @@ jobs: SMS_CARRIER: ${{ secrets.SMS_CARRIER }} run: python3 scripts/gha_alerts.py - - name: Persist state if changed + - name: Commit state + dashboard snapshots if changed run: | - if [ -z "$(git status --porcelain alerts_state.json)" ]; then - echo "no state change" + git add alerts_state.json docs/data/ 2>/dev/null || true + if git diff --cached --quiet; then + echo "no changes to commit" exit 0 fi git config user.email "actions@users.noreply.github.com" git config user.name "arb-alerts" - git add alerts_state.json - git commit -m "alerts: update state [skip ci]" + git commit -m "alerts+dashboard: refresh [skip ci]" git push diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/app.js b/docs/app.js new file mode 100644 index 000000000..86addccd6 --- /dev/null +++ b/docs/app.js @@ -0,0 +1,656 @@ +"use strict"; + +const ASSET = { + BTC: "#f7931a", ETH: "#7b87ff", SOL: "#19fb9b", XRP: "#3fb6e8", + BNB: "#f3ba2f", DOGE: "#c2a633", HYPE: "#22d3a6", ZEC: "#f4b728", +}; +const ac = (a) => ASSET[a] || "#7c8cff"; + +const COLS_MONTHLY = [ + { k: "_mkt", t: "Market", align: "l", sort: "kalshi_ticker" }, + { k: "best_side", t: "Side", align: "l" }, + { k: "_px", t: "K / P px", align: "l", sort: "combined_cost" }, + { k: "combined_cost", t: "Comb $", f: "px" }, + { k: "worst_pnl", t: "Min $/ct", f: "s4" }, + { k: "net_return", t: "Net Ret", f: "pctBig" }, + { k: "annualized", t: "Annual", f: "pct" }, + { k: "max_contracts", t: "Max Ct", f: "sz" }, + { k: "total_gain", t: "Tot $", f: "s2" }, + { k: "poly_volume", t: "P Vol", f: "money" }, + { k: "days_to_expiry",t: "Days", f: "int" }, + { k: "status", t: "Status", align: "l", f: "status" }, +]; +const COLS_HOURLY = [ + { k: "_mkt", t: "Market", align: "l", sort: "asset" }, + { k: "_window", t: "Window", align: "l", sort: "minutes_to_resolve" }, + { k: "kalshi_strike", t: "K Strike", f: "strike" }, + { k: "implied_strike",t: "Binance open", f: "strike" }, + { k: "best_side", t: "Side", align: "l" }, + { k: "_px", t: "K / P px", align: "l", sort: "combined_cost" }, + { k: "combined_cost", t: "Comb $", f: "px" }, + { k: "worst_pnl", t: "Min $/ct", f: "s4" }, + { k: "net_return", t: "Net Ret", f: "pctBig" }, + { k: "divergence", t: "Feed Δ", f: "div" }, + { k: "poly_volume", t: "P Vol", f: "money" }, + { k: "status", t: "Status", align: "l", f: "status" }, +]; + +let MODE = "monthly", POS_VIEW = "venue"; +const COLS = () => (MODE === "hourly" ? COLS_HOURLY : COLS_MONTHLY); +// Static snapshot URLs — no backend; cache-bust on each load so returning +// users see fresh data after a GHA cron commit. +const endpoint = () => { + const f = MODE === "hourly" ? "hourly" : "scan"; + return `./data/${f}.json?t=${Date.now()}`; +}; +const STATIC_MODE = true; + +let RAW = [], sortKey = "net_return", sortAsc = false, openKey = null; +const $ = (id) => document.getElementById(id); +const esc = (s) => String(s == null ? "" : s).replace(/[&<>"]/g, + (c) => ({ "&": "&", "<": "<", ">": ">", '"': """ }[c])); +const rid = (r) => (r.asset || "") + "|" + (r.kalshi_ticker || "") + + "|" + (r.poly_slug || ""); + +// "2026-05-21 16:15:07" (UTC, from GHA runner) -> "3 min ago" etc. +function ago(stamp) { + if (!stamp) return "—"; + const t = Date.parse(stamp.replace(" ", "T") + "Z"); + if (isNaN(t)) return stamp; + const s = Math.max(0, Math.round((Date.now() - t) / 1000)); + if (s < 45) return "just now"; + const m = Math.round(s / 60); + if (m < 60) return `${m} min ago`; + const h = Math.round(m / 60); + return `${h}h ago`; +} + +function fmt(v, kind) { + if (v === null || v === undefined || v === "") + return '—'; + const sign = (n, body, big) => { + const c = n > 0 ? "pos" : n < 0 ? "neg" : "dimv"; + return `${body}`; + }; + switch (kind) { + case "int": return String(Math.round(v)); + case "sz": return (+v).toLocaleString(undefined, { maximumFractionDigits: 0 }); + case "px": return `${(+v).toFixed(3)}`; + case "money": return "$" + (+v).toLocaleString(undefined, { notation: v >= 1e6 ? "compact" : "standard", maximumFractionDigits: 1 }); + case "pct": return sign(v, (v * 100).toFixed(1) + "%"); + case "pctBig":return sign(v, (v > 0 ? "+" : "") + (v * 100).toFixed(2) + "%", true); + case "s4": return sign(v, (v > 0 ? "+" : "") + (+v).toFixed(4)); + case "s2": return sign(v, (v > 0 ? "+" : "") + "$" + (+v).toFixed(2)); + case "strike":return `${(+v).toLocaleString(undefined, { maximumFractionDigits: v < 10 ? 4 : 0 })}`; + case "div": { const p = (v * 100), hot = Math.abs(p) >= 0.3; + return `${p >= 0 ? "+" : ""}${p.toFixed(3)}%`; } + case "status":{ const s = String(v).replace(/\s+/g, ""); + return `${v}`; } + default: return esc(v); + } +} + +function thumb(r, sz) { + const s = sz || 34; + if (r.image) + return ``; + return `
${esc((r.asset || "?").slice(0, 4))}
`; +} + +function cellMarket(r) { + const title = r.kalshi_title || r.poly_question || + `${r.asset} ${r.direction} ${r.kalshi_strike ?? ""}`; + const strikes = `K $${r.kalshi_strike ?? "—"} · P $${r.poly_strike ?? "—"}`; + return `
${thumb(r)} +
+
+ ${esc(r.asset || "?")} + ${esc(title)} +
+
${esc(r.direction || "")}  ${esc(strikes)}
+
`; +} + +function cellPx(r) { + const k = r.kalshi_price, p = r.poly_price, c = r.combined_cost; + if (k == null || p == null) return '—'; + const pct = Math.min(100, (c / 1) * 100); + const col = c < 1 ? "var(--good)" : "var(--bad)"; + return `
+
K ${k.toFixed(3)}P ${p.toFixed(3)}
+
+
cost vs $1${c.toFixed(3)}
+
`; +} + +function cellWindow(r) { + if (!r.window_start) return '—'; + const m = r.minutes_to_resolve; + const mc = m != null && m <= 10 ? "neg" : m != null && m <= 25 ? "pos" : "dimv"; + return `
+
${esc(r.window_start)} → ${esc(r.window_close)}
+
${m != null ? "resolves in " + m + "m" : ""}
+
`; +} + +function renderHead() { + $("head").innerHTML = COLS().map((c) => { + const sk = c.sort || c.k; + let cls = c.align === "l" ? "l" : ""; + if (sk === sortKey) cls += sortAsc ? " asc" : " sorted"; + return `${c.t}`; + }).join(""); + document.querySelectorAll("#head th").forEach((th) => { + th.onclick = () => { + const k = th.dataset.sk; + if (k === sortKey) sortAsc = !sortAsc; else { sortKey = k; sortAsc = false; } + renderHead(); renderBody(); + }; + }); +} + +function activeStatus() { + const b = document.querySelector("#statusSeg button.on"); + return b ? b.dataset.s : ""; +} +function activeAssets() { + return [...document.querySelectorAll("#assetChips .ac.on")].map((e) => e.dataset.a); +} + +function filtered() { + const q = $("search").value.trim().toLowerCase(); + const s = activeStatus(), as = activeAssets(), fav = $("favOnly").checked; + return RAW.filter((r) => { + if (s && r.status !== s) return false; + if (as.length && !as.includes(r.asset)) return false; + if (fav && !r.basis_favorable) return false; + if (q) { + const h = `${r.asset} ${r.kalshi_ticker} ${r.poly_slug || ""} ${r.kalshi_title || ""} ${r.poly_question || ""}`.toLowerCase(); + if (!h.includes(q)) return false; + } + return true; + }); +} + +function sortRows(rows) { + return rows.sort((x, y) => { + let a = x[sortKey], b = y[sortKey]; + a = a == null ? -Infinity : a; b = b == null ? -Infinity : b; + if (typeof a === "string" || typeof b === "string") + return sortAsc ? String(a).localeCompare(b) : String(b).localeCompare(a); + return sortAsc ? a - b : b - a; + }); +} + +function drawer(r) { + const kv = (k, v) => `
${k}
${v}
`; + const money = (n, d = 4) => n == null ? "—" + : `${n > 0 ? "+" : ""}${(+n).toFixed(d)}`; + const kCard = `
+

Kalshi ${esc(r.kalshi_ticker)}

+
${esc(r.kalshi_title || "—")}
+
+
Yes ask
${r.kalshi_price != null && r.best_side === "YES+NO" ? r.kalshi_price.toFixed(3) : "—"}
+
No ask
${r.kalshi_price != null && r.best_side === "NO+YES" ? r.kalshi_price.toFixed(3) : "—"}
+
Open int
${r.kalshi_size != null ? Math.round(r.kalshi_size).toLocaleString() : "—"}
+
+
${esc(r.kalshi_rules || "Resolution rules unavailable.")}
+
`; + const pImg = r.image ? `` : ""; + const pSideRaw = (r.best_side || "—").split("+")[1] || "—"; + const pSide = MODE === "hourly" + ? (pSideRaw === "NO" ? "Down" : pSideRaw === "YES" ? "Up" : pSideRaw) + : pSideRaw; + const pCard = `
+

Polymarket ${esc(r.poly_slug || "no paired market")}

+ ${pImg} +
${esc(r.poly_question || "—")}
+
+
Side held
${esc(pSide)}
+
Poly px
${r.poly_price != null ? r.poly_price.toFixed(3) : "—"}
+
Volume
$${(r.poly_volume || 0).toLocaleString(undefined, { maximumFractionDigits: 0 })}
+
+
${esc(r.poly_description || "Market description unavailable.")}
+
`; + const hourly = MODE === "hourly"; + const scen = `
+
${hourly ? "Worst case" : "Min / guaranteed"}
${money(r.worst_pnl)}
+
Strike gap
${r.mid_pnl == null ? 'none' : money(r.mid_pnl)}
+
Best case
${money(r.best_pnl)}
+
`; + const hRows = hourly ? ` + ${kv("Window", esc((r.window_start || "—") + " → " + (r.window_close || "—")))} + ${kv("Resolves in", r.minutes_to_resolve != null ? r.minutes_to_resolve + " min" : "—")} + ${kv("Implied strike (Binance open)", r.implied_strike != null ? r.implied_strike.toLocaleString() : "—")} + ${kv("Binance spot / CF spot", `${r.binance_spot != null ? r.binance_spot.toLocaleString() : "—"} / ${r.cf_spot != null ? r.cf_spot.toLocaleString() : "n/a"}`)} + ${kv("Feed divergence", fmt(r.divergence, "div"))}` : ` + ${kv("Annualized", fmt(r.annualized, "pct"))} + ${kv("Total guaranteed $", money(r.total_gain, 2))} + ${kv("Days to expiry", r.days_to_expiry ?? "—")}`; + const bd = `
+

${hourly ? "Speculative breakdown" : "Arb breakdown"}

+ ${scen} + ${hourly ? '
Different settlement feeds — legs are not a locked hedge.
' : ""} +
+ ${kv("Best side", esc(r.best_side || "—"))} + ${kv("Combined cost", r.combined_cost != null ? "$" + r.combined_cost.toFixed(4) : "—")} + ${kv("Total fee / ct", r.total_fee != null ? "$" + r.total_fee.toFixed(4) : "—")} + ${kv("Net return", fmt(r.net_return, "pctBig"))} + ${kv("Basis %", fmt(r.basis_pct, "pct") + (r.basis_favorable ? ' ✓ favorable' : ' ✗ risk'))} + ${kv("Max contracts", r.max_contracts != null ? Math.round(r.max_contracts).toLocaleString() : "—")} + ${hRows} +
`; + return ` +
${kCard}${pCard}${bd}
`; +} + +function renderBody() { + const rows = sortRows(filtered()); + $("rowCount").textContent = `${rows.length} of ${RAW.length} markets`; + $("empty").hidden = rows.length > 0; + const html = []; + for (const r of rows) { + const id = rid(r), isOpen = id === openKey; + html.push(`` + + COLS().map((c) => { + const cls = c.align === "l" ? "l" : ""; + if (c.k === "_mkt") return `${cellMarket(r)}`; + if (c.k === "_px") return `${cellPx(r)}`; + if (c.k === "_window") return `${cellWindow(r)}`; + if (c.k === "best_side") { + let bs = r.best_side || "—"; + if (MODE === "hourly" && bs !== "—") + bs = bs === "YES+NO" ? "K-Yes · P-Down" : "K-No · P-Up"; + return `${esc(bs)}`; + } + return `${fmt(r[c.k], c.f)}`; + }).join("") + ""); + if (isOpen) html.push(drawer(r)); + } + $("body").innerHTML = html.join(""); + document.querySelectorAll("#body tr.r").forEach((tr) => { + tr.onclick = () => { + openKey = openKey === tr.dataset.id ? null : tr.dataset.id; + renderBody(); + }; + }); +} + +function renderSummary(s) { + const cards = MODE === "hourly" ? [ + ["ARB", "Edges", "s-arb"], ["NO ARB", "No edge", ""], + ["BAD BASIS", "Bad basis", "s-bad"], ["NO DATA", "No data", ""], + ["total", "Assets", ""], + ] : [ + ["ARB", "Live arbs", "s-arb"], ["NO ARB", "No edge", ""], + ["BAD BASIS", "Bad basis", "s-bad"], ["LOW SIZE", "Low size", "s-warn"], + ["NO DATA", "No data", ""], ["total", "Scanned", ""], + ]; + $("summary").innerHTML = cards.map(([k, l, cls]) => + `
${s[k] ?? 0}
+
${l}
`).join("") + + `
${s.fetch_ms ?? "—"}ms
+
Fetch time
`; +} + +function renderHero(rows) { + const hourly = MODE === "hourly"; + const top = rows.filter((r) => r.status === "ARB" && r.net_return > 0) + .sort((a, b) => b.net_return - a.net_return).slice(0, 4); + const h = $("hero"); + h.querySelector("h2").textContent = + hourly ? "Top dislocations" : "Top opportunities"; + h.querySelector(".muted").textContent = hourly + ? "combined cost < $1 — speculative, basis risk applies" + : "positive guaranteed return, ranked"; + if (!top.length) { h.hidden = true; return; } + h.hidden = false; + $("heroCards").innerHTML = top.map((r) => ` +
+
+
${thumb(r, 38)} +
${esc(r.kalshi_title || r.poly_question || r.asset)}
+
+${(r.net_return * 100).toFixed(2)}%
+
+ ${hourly + ? `${r.minutes_to_resolve ?? "—"}m left + ${r.divergence != null ? (r.divergence * 100).toFixed(3) + "%" : "—"} feed Δ` + : `${r.annualized ? (r.annualized * 100).toFixed(0) + "%" : "—"} annual + $${(r.total_gain || 0).toFixed(2)} locked`} + ${Math.round(r.max_contracts || 0).toLocaleString()} ct + ${esc(r.best_side)} +
+
`).join(""); + document.querySelectorAll(".hcard").forEach((c) => c.onclick = () => { + openKey = c.dataset.id; + document.querySelector("#statusSeg button.on")?.classList.remove("on"); + document.querySelector('#statusSeg button[data-s=""]').classList.add("on"); + renderBody(); + document.querySelector(`#body tr.r[data-id="${CSS.escape(c.dataset.id)}"]`) + ?.scrollIntoView({ behavior: "smooth", block: "center" }); + }); +} + +let POS_DATA = null; + +const usd = (n, d = 2) => n == null ? "—" + : "$" + (+n).toLocaleString(undefined, { minimumFractionDigits: d, maximumFractionDigits: d }); +function pnl(n, pct) { + if (n == null) return '—'; + const c = n > 0 ? "pos" : n < 0 ? "neg" : "dimv"; + const p = pct != null ? ` (${(pct * 100).toFixed(1)}%)` : ""; + return `${n > 0 ? "+" : ""}${usd(n)}${p}`; +} + +function posThumb(p) { + if (p.icon) return ``; + const a = p.asset ? p.asset.slice(0, 4) : "?"; + return `
${esc(a)}
`; +} + +function venuePanel(name, tag, v) { + const setup = (body) => `
+

${name} not connected

${body}
`; + if (!v || v.configured === false) { + if (name === "Polymarket") + return setup(`

Add your wallet to data/secrets.json:

+
{ "polymarket_wallet": "0xYourProxyWallet" }
+

Public address only — no private key. Copy + data/secrets.example.json to start.

`); + return setup(`

Create a read-only API key in Kalshi → Settings → API Keys, + save the private-key file locally, then add to + data/secrets.json:

+
{ "kalshi_key_id": "…",
+  "kalshi_private_key_path": "/abs/path/key.pem" }
+

Signed locally via openssl — the key never leaves your + machine. ${v && v.reason === "key_file_not_found" + ? 'Key file not found at that path.' : ""}

`); + } + if (v.error) + return `

${name}

+

${esc(v.error)}

`; + const ps = v.positions || []; + const head = `
+

${name} ${ps.length} open

+ ${usd(v.total_value)}
`; + if (!ps.length) + return `
${head}

No open positions.

`; + const rows = ps.sort((a, b) => (b.value || 0) - (a.value || 0)).map((p) => ` + +
${posThumb(p)}
+
${esc(p.market)}
+
${esc(p.ref || "")}
+ ${esc(p.side)} + ${(p.size || 0).toLocaleString(undefined, { maximumFractionDigits: 0 })} + ${p.avg_price != null ? (+p.avg_price).toFixed(3) : "—"} → ${p.cur_price != null ? (+p.cur_price).toFixed(3) : "—"} + ${usd(p.cost)} + ${usd(p.value)} + ${pnl(p.pnl, p.pnl_pct)} + `).join(""); + return `
${head} + + + + ${rows}
MarketSideSizeAvg → CurCostValueP&L
`; +} + +function pairedView(rows) { + if (!rows || !rows.length) + return `

Paired exposure

+

No held positions match a known Kalshi↔Polymarket arb + pair (pairs come from the Monthly map). Positions still show under + By venue.

`; + const body = rows.map((r) => { + const legs = r.legs.map((l) => `
+ ${l.venue[0]} + ${esc(l.side)} + ${esc(l.ref || "")} + ${(l.size || 0).toLocaleString(undefined, { maximumFractionDigits: 0 })} + ${pnl(l.pnl)}
`).join(""); + return ` + ${esc(r.asset || "?")} + ${r.complete ? 'paired' : 'one leg'} + ${legs} + ${usd(r.cost)} + ${usd(r.value)} + ${pnl(r.pnl, r.pnl_pct)} + `; + }).join(""); + return `

Paired / netted exposure

+ + + + ${body}
PairLegsCostValueNet P&L
`; +} + +function historyCard(name, tag, rows, note) { + const head = `
+

${name} ${rows.length} settled${note ? ` · ${note}` : ""}

+ ${pnl(rows.reduce((s, r) => s + (r.realized || 0), 0))}
`; + if (!rows.length) + return `
${head}

No settled markets found.

`; + const body = rows.slice().sort((a, b) => + (b.settled_date || "").localeCompare(a.settled_date || "")).map((r) => ` + +
+ ${r.icon ? `` : ""} +
${esc(r.market)}
+
${esc(r.settled_date || "")}
+ ${esc(r.result)} + ${esc(r.side || "—")} + ${(r.size || 0).toLocaleString(undefined, { maximumFractionDigits: 0 })} + ${usd(r.cost)} + ${usd(r.payout)} + ${pnl(r.realized)} + `).join(""); + return `
${head} + + + + ${body}
MarketResultSideSizeCostPayoutRealized
`; +} + +function historyView(h) { + h = h || {}; + return `
+ ${historyCard("Kalshi", "k", h.kalshi || [], "exact (settlements)")} + ${historyCard("Polymarket", "p", h.polymarket || [], "reconstructed · payout derived")} +
`; +} + +function renderPositions(d) { + if (d) POS_DATA = d; + d = POS_DATA; + const t = d.totals || {}; + const stat = (n, l, cls) => + `
${n}
${l}
`; + const pstat = (n, l, big) => { + if (n == null) + return `
—
${l}
`; + const cls = n > 0 ? "s-arb" : n < 0 ? "s-bad" : ""; + const v = (n > 0 ? "+" : n < 0 ? "-" : "") + + "$" + Math.abs(n).toLocaleString(undefined, + { minimumFractionDigits: 2, maximumFractionDigits: 2 }); + return `
+
${v}
${l}
`; + }; + const strip = `
+ ${stat(usd(t.poly_value), "Polymarket value")} + ${stat(t.kalshi_value == null ? "—" : usd(t.kalshi_value), "Kalshi value")} + ${pstat(t.kalshi_pnl, "Kalshi P&L")} + ${pstat(t.poly_pnl, "Polymarket P&L")} + ${(() => { + const n = t.total_pnl, r = t.total_return; + if (n == null) + return `
—
Total P&L
`; + const cls = n > 0 ? "s-arb" : n < 0 ? "s-bad" : ""; + const v = (n > 0 ? "+" : n < 0 ? "-" : "") + "$" + + Math.abs(n).toLocaleString(undefined, + { minimumFractionDigits: 2, maximumFractionDigits: 2 }); + const sub = r == null ? "" : + `
${r > 0 ? "+" : ""}${(r * 100).toFixed(2)}% return
`; + return `
${v}
${sub}
Total P&L
`; + })()} + ${pstat(t.total_realized, "Realized P&L")} + ${stat(t.open_positions ?? 0, "Open positions")} + ${stat(t.settled_count ?? 0, "Settled")} + ${stat(t.paired_count ?? 0, "Complete pairs", "s-arb")}
`; + const tab = (v, l) => + ``; + const seg = `
+ ${tab("venue", "By venue")}${tab("paired", "Paired")}${tab("history", "History")} +
`; + const content = POS_VIEW === "paired" ? pairedView(d.paired) + : POS_VIEW === "history" ? historyView(d.history) + : `
+ ${venuePanel("Polymarket", "p", d.polymarket)} + ${venuePanel("Kalshi", "k", d.kalshi)}
`; + $("positions").innerHTML = strip + + `
${seg} + Read-only · credentials stay in local + data/secrets.json
` + content; + $("positions").querySelectorAll(".posseg button").forEach((b) => + b.onclick = () => { + POS_VIEW = b.dataset.v; renderPositions(); + }); +} + +function toast(msg, kind) { + const t = $("toast"); + t.textContent = msg; t.className = "toast" + (kind ? " " + kind : ""); + t.hidden = false; clearTimeout(toast._t); + toast._t = setTimeout(() => (t.hidden = true), kind === "err" ? 7000 : 2800); +} + +function applyChrome() { + const scanner = MODE !== "positions"; + $("summary").hidden = !scanner; + document.querySelector(".toolbar").hidden = !scanner; + document.querySelector("main").hidden = !scanner; + if ($("positions")) $("positions").hidden = scanner; + if (!scanner) { $("hero").hidden = true; $("hbanner").hidden = true; } +} + +async function load(force) { + const b = $("refresh"); + b.disabled = true; b.classList.add("loading"); + b.querySelector(".blabel").textContent = + MODE === "positions" ? "Loading…" : "Scanning…"; + applyChrome(); + try { + const res = await fetch(endpoint() + (force ? "?force=1" : "")); + const d = await res.json(); + if (!res.ok) throw new Error(d.error || res.status); + if (MODE === "positions") { + renderPositions(d); + $("meta").textContent = + `${d.generated_at} · ${d.totals.open_positions} open`; + } else { + RAW = d.rows; + renderSummary(d.summary); + buildAssetChips(); + renderHero(RAW); + renderBody(); + updateBanner(d.summary); + const unit = MODE === "hourly" ? "assets" : "pairs"; + $("meta").textContent = `${ago(d.generated_at)} · ${d.summary.total} ${unit}`; + } + } catch (e) { + toast((MODE === "positions" ? "Load" : "Scan") + " failed: " + e.message, "err"); + $("meta").textContent = "load failed"; + } finally { + b.disabled = false; b.classList.remove("loading"); + b.querySelector(".blabel").textContent = "Refresh"; + } +} + +function updateBanner(summary) { + const b = $("hbanner"); + if (MODE !== "hourly") { b.hidden = true; return; } + b.hidden = false; + const d = summary && summary.max_divergence; + const el = $("hbDiv"); + if (d == null) { el.textContent = "n/a"; el.classList.remove("hot"); return; } + const pct = (d * 100); + el.textContent = "max " + pct.toFixed(3) + "%"; + el.classList.toggle("hot", pct >= 0.3); +} + +function buildAssetChips() { + const el = $("assetChips"); + if (el.dataset.built) return; + const assets = [...new Set(RAW.map((r) => r.asset))].filter(Boolean).sort(); + el.innerHTML = assets.map((a) => + `${a}`).join(""); + el.dataset.built = "1"; + el.querySelectorAll(".ac").forEach((c) => c.onclick = () => { + c.classList.toggle("on"); renderBody(); + }); +} + +async function loadSettings() { + const s = await (await fetch("/api/settings")).json(); + s_kfee.value = s.kalshi_fee_rate; s_pfee.value = s.poly_fee_rate; + s_minret.value = s.min_net_return; s_minvol.value = s.min_poly_volume; + s_minct.value = s.min_contracts; +} + +function wire() { + document.querySelectorAll("#tabs button").forEach((b) => b.onclick = () => { + if (b.classList.contains("on")) return; + document.querySelector("#tabs button.on")?.classList.remove("on"); + b.classList.add("on"); + MODE = b.dataset.m; + openKey = null; + sortKey = "net_return"; sortAsc = false; + const ac = $("assetChips"); ac.dataset.built = ""; ac.innerHTML = ""; + document.querySelector("#statusSeg button.on")?.classList.remove("on"); + document.querySelector('#statusSeg button[data-s=""]').classList.add("on"); + $("search").value = ""; + renderHead(); + load(true); + }); + $("refresh").onclick = () => load(true); + $("search").addEventListener("input", renderBody); + $("favOnly").addEventListener("change", renderBody); + document.querySelectorAll("#statusSeg button").forEach((b) => b.onclick = () => { + document.querySelector("#statusSeg button.on")?.classList.remove("on"); + b.classList.add("on"); renderBody(); + }); + // STATIC_MODE: no auto-refresh checkbox, no settings panel (DOM absent). + if ($("auto")) { + let timer = null; + $("auto").onchange = (e) => { + clearInterval(timer); + if (e.target.checked) { load(true); timer = setInterval(() => load(true), 8000); } + }; + } + if ($("settingsBtn")) { + $("settingsBtn").onclick = async () => { + await loadSettings(); $("settingsModal").hidden = false; + }; + $("closeSettings").onclick = () => ($("settingsModal").hidden = true); + $("saveSettings").onclick = async () => { + const body = { + kalshi_fee_rate: +s_kfee.value, poly_fee_rate: +s_pfee.value, + min_net_return: +s_minret.value, min_poly_volume: +s_minvol.value, + min_contracts: +s_minct.value, + }; + const r = await fetch("/api/settings", { + method: "POST", headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body), + }); + if (r.ok) { $("settingsModal").hidden = true; toast("Saved — rescanning", "ok"); load(true); } + else toast("Save failed", "err"); + }; + } +} + +renderHead(); +wire(); +load(false); diff --git a/docs/data/hourly.json b/docs/data/hourly.json new file mode 100644 index 000000000..474b36a68 --- /dev/null +++ b/docs/data/hourly.json @@ -0,0 +1 @@ +{"rows":[{"asset":"BTC","kalshi_ticker":"KXBTCD-26MAY2122-T77399.99","kalshi_strike":77399.99,"poly_slug":"bitcoin-up-or-down-may-21-2026-9pm-et","poly_strike":77373.57,"direction":"Above","basis_pct":0.00034134371335187836,"basis_favorable":false,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":66138.4,"poly_price":0.001,"poly_size":34037.19,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-1.001071928,"best_pnl":-0.0010719279999999998,"mid_pnl":-1.001071928,"net_return":-1.0000718561438562,"annualized":-365.02622749250753,"max_contracts":34037.19,"total_gain":-34073.67541700232,"poly_volume":34607.98933500004,"days_to_expiry":1,"status":"BAD BASIS","kalshi_title":"Bitcoin price on May 21, 2026?","kalshi_rules":"If the simple average of the sixty seconds of CF Benchmarks' Bitcoin Real-Time Index (BRTI) before 10 PM EDT is above 77399.99 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$77,400 or above","kalshi_no_label":"$77,400 or above","poly_question":"Bitcoin Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the BTC/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the BTC/USDT pair (https://www.binance.com/en/trade/BTC_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed at t\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png","implied_strike":77373.57,"binance_spot":77605.87,"cf_spot":77528.565,"divergence":0.0009971163531788962,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0},{"asset":"ETH","kalshi_ticker":"KXETHD-26MAY2122-T2119.99","kalshi_strike":2119.99,"poly_slug":"ethereum-up-or-down-may-21-2026-9pm-et","poly_strike":2129.32,"direction":"Above","basis_pct":-0.00440096415549148,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":2332.0,"poly_price":0.001,"poly_size":15.0,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-0.001071928,"best_pnl":0.998928072,"mid_pnl":0.998928072,"net_return":-0.001070857142857143,"annualized":-0.3908628571428572,"max_contracts":15.0,"total_gain":-0.01607892,"poly_volume":2148.308038,"days_to_expiry":1,"status":"NO ARB","kalshi_title":"Ethereum price at May 21, 2026 at 10pm EDT?","kalshi_rules":"If the simple average of the sixty seconds of CF Benchmarks' Ethereum Real-Time Index (ERTI) before 10 PM EDT is above 2119.99 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$2,120 or above","kalshi_no_label":"$2,120 or above","poly_question":"Ethereum Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the ETH/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the ETH/USDT pair (https://www.binance.com/en/trade/ETH_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed at t\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg","implied_strike":2129.32,"binance_spot":2135.77,"cf_spot":2133.775,"divergence":0.000934962683506879,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0},{"asset":"SOL","kalshi_ticker":"KXSOLD-26MAY2122-T86.9999","kalshi_strike":86.9999,"poly_slug":"solana-up-or-down-may-21-2026-9pm-et","poly_strike":86.84,"direction":"Above","basis_pct":0.001837933147049517,"basis_favorable":false,"best_side":"YES+NO","kalshi_price":0.1,"kalshi_size":365.19,"poly_price":0.001,"poly_size":1069.52,"combined_cost":0.101,"kalshi_fee":0.006300000000000001,"poly_fee":7.1928e-05,"total_fee":0.006371928000000001,"worst_pnl":-0.107371928,"best_pnl":0.892628072,"mid_pnl":-0.107371928,"net_return":-1.063088396039604,"annualized":-388.0272645544555,"max_contracts":365.19,"total_gain":-39.211154386320004,"poly_volume":1327.4354610000003,"days_to_expiry":1,"status":"BAD BASIS","kalshi_title":"SOL price on May 21, 2026?","kalshi_rules":"If the simple average of the sixty seconds of CF Benchmarks' SOLUSD_RTI before 10 PM EDT is above $86.9999 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$87 or above","kalshi_no_label":"$87 or above","poly_question":"Solana Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the SOL/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the SOL/USDT pair (https://www.binance.com/en/trade/SOL_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed at t\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png","implied_strike":86.84,"binance_spot":87.05,"cf_spot":86.97,"divergence":0.000919857422099555,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0},{"asset":"XRP","kalshi_ticker":"KXXRPD-26MAY2122-T1.3599","kalshi_strike":1.3599,"poly_slug":"xrp-up-or-down-may-21-2026-9pm-et","poly_strike":1.3681,"direction":"Above","basis_pct":-0.006029855136407077,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":28.42,"poly_price":0.01,"poly_size":2284.38,"combined_cost":1.01,"kalshi_fee":0.0,"poly_fee":0.0007128,"total_fee":0.0007128,"worst_pnl":-0.0107128,"best_pnl":0.9892872,"mid_pnl":0.9892872,"net_return":-0.010606732673267326,"annualized":-3.871457425742574,"max_contracts":28.42,"total_gain":-0.304457776,"poly_volume":1402.5523219999998,"days_to_expiry":1,"status":"NO ARB","kalshi_title":"Ripple price at May 21, 2026 at 10pm EDT?","kalshi_rules":"If the simple average of the sixty seconds of CF Benchmarks' Ripple-Dollar Real Time Index (XRPUSD_RTI) before 10 PM EDT is above 1.3599 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$1.35991 or above","kalshi_no_label":"$1.35991 or above","poly_question":"XRP Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the XRP/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the XRP/USDT pair (https://www.binance.com/en/trade/XRP_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed at t\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png","implied_strike":1.3681,"binance_spot":1.3704,"cf_spot":1.36885,"divergence":0.0011323373634804124,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0},{"asset":"DOGE","kalshi_ticker":"KXDOGED-26MAY2122-T0.1049999","kalshi_strike":0.1049999,"poly_slug":"dogecoin-up-or-down-may-21-2026-9pm-et","poly_strike":0.10514,"direction":"Above","basis_pct":-0.001334286985035263,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":0.0,"poly_price":0.001,"poly_size":53.33,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-0.001071928,"best_pnl":0.998928072,"mid_pnl":0.998928072,"net_return":-0.001070857142857143,"annualized":-0.3908628571428572,"max_contracts":0.0,"total_gain":-0.0,"poly_volume":444.701852,"days_to_expiry":1,"status":"NO ARB","kalshi_title":"Dogecoin price on May 21, 2026?","kalshi_rules":"If there is a 60 second average of CF Benchmarks' Dogecoin Real-Time Index (DOGEUSD_RTI) before 10 PM EDT is above 0.1049999 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$0.105 or above","kalshi_no_label":"$0.105 or above","poly_question":"Dogecoin Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the DOGE/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the DOGE/USDT pair (https://www.binance.com/en/trade/DOGE_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed a\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png","implied_strike":0.10514,"binance_spot":0.10599,"cf_spot":0.10587,"divergence":0.001133465570983235,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0},{"asset":"BNB","kalshi_ticker":"KXBNBD-26MAY2122-T654.99","kalshi_strike":654.99,"poly_slug":"bnb-up-or-down-may-21-2026-9pm-et","poly_strike":656.98,"direction":"Above","basis_pct":-0.003038214323882821,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":0.0,"poly_price":0.001,"poly_size":810.8,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-0.001071928,"best_pnl":0.998928072,"mid_pnl":0.998928072,"net_return":-0.001070857142857143,"annualized":-0.3908628571428572,"max_contracts":0.0,"total_gain":-0.0,"poly_volume":235.950196,"days_to_expiry":1,"status":"NO ARB","kalshi_title":"BNB price on May 21, 2026?","kalshi_rules":"If the simple average of the sixty seconds of CF Benchmarks' BNBUSD_RTI before 10 PM EDT is above $654.99 at 10 PM EDT on May 21, 2026, then the market resolves to Yes.","kalshi_yes_label":"$655 or above","kalshi_no_label":"$655 or above","poly_question":"BNB Up or Down - May 21, 9PM ET","poly_description":"This market will resolve to \"Up\" if the close price is greater than or equal to the open price for the BNB/USDT 1 hour candle that begins on the time and date specified in the title. Otherwise, this market will resolve to \"Down\".\n\nThe resolution source for this market is information from Binance, specifically the BNB/USDT pair (https://www.binance.com/en/trade/BNB_USDT). The close \u00ab C \u00bb and open \u00ab O \u00bb displayed at t\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb%20logo-247a9f7a39.png","implied_strike":656.98,"binance_spot":659.32,"cf_spot":null,"divergence":null,"window_start":"21:00 ET","window_close":"22:00 ET","minutes_to_resolve":0}],"summary":{"total":6,"fetch_ms":3244,"ARB":0,"NO ARB":4,"BAD BASIS":2,"LOW SIZE":0,"NO DATA":0,"NO KALSHI":0,"max_divergence":0.001133465570983235},"settings":{"kalshi_fee_rate":0.07,"poly_fee_rate":0.072,"min_net_return":0.002,"min_poly_volume":100.0,"min_contracts":1.0},"mode":"hourly","generated_at":"2026-05-21 21:59:31"} diff --git a/docs/data/scan.json b/docs/data/scan.json new file mode 100644 index 000000000..dd72a9371 --- /dev/null +++ b/docs/data/scan.json @@ -0,0 +1 @@ +{"rows":[{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-6250","kalshi_strike":62.5,"poly_slug":null,"poly_strike":null,"direction":"Above","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will HYPE trimmed mean be above $62.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n62.50, then the market resolves to Yes.","kalshi_yes_label":"Above $62.50","kalshi_no_label":"Above $62.50","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-6000","kalshi_strike":60.0,"poly_slug":"will-hyperliquid-reach-52-in-may","poly_strike":52.0,"direction":"Above","basis_pct":0.13333333333333333,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $60.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n60.00, then the market resolves to Yes.","kalshi_yes_label":"Above $60.00","kalshi_no_label":"Above $60.00","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-5750","kalshi_strike":57.5,"poly_slug":"will-hyperliquid-reach-52-in-may","poly_strike":52.0,"direction":"Above","basis_pct":0.09565217391304348,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $57.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n57.50, then the market resolves to Yes.","kalshi_yes_label":"Above $57.50","kalshi_no_label":"Above $57.50","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-5500","kalshi_strike":55.0,"poly_slug":"will-hyperliquid-reach-52-in-may","poly_strike":52.0,"direction":"Above","basis_pct":0.05454545454545454,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $55.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n55.00, then the market resolves to Yes.","kalshi_yes_label":"Above $55.00","kalshi_no_label":"Above $55.00","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-5250","kalshi_strike":52.5,"poly_slug":"will-hyperliquid-reach-52-in-may","poly_strike":52.0,"direction":"Above","basis_pct":0.009523809523809525,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $52.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n52.50, then the market resolves to Yes.","kalshi_yes_label":"Above $52.50","kalshi_no_label":"Above $52.50","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-5000","kalshi_strike":50.0,"poly_slug":"will-hyperliquid-reach-52-in-may","poly_strike":52.0,"direction":"Above","basis_pct":-0.04,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $50.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n50.00, then the market resolves to Yes.","kalshi_yes_label":"Above $50.00","kalshi_no_label":"Above $50.00","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-4750","kalshi_strike":47.5,"poly_slug":"will-hyperliquid-reach-48-in-may","poly_strike":48.0,"direction":"Above","basis_pct":-0.010526315789473684,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $47.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n47.50, then the market resolves to Yes.","kalshi_yes_label":"Above $47.50","kalshi_no_label":"Above $47.50","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMAXMON-HYPE-26MAY31-4500","kalshi_strike":45.0,"poly_slug":"will-hyperliquid-reach-44-in-may","poly_strike":44.0,"direction":"Above","basis_pct":0.022222222222222223,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will HYPE trimmed mean be above $45.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n45.00, then the market resolves to Yes.","kalshi_yes_label":"Above $45.00","kalshi_no_label":"Above $45.00","poly_question":null,"poly_description":null,"image":null},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-4000","kalshi_strike":40.0,"poly_slug":"will-hyperliquid-dip-to-38-in-may","poly_strike":38.0,"direction":"Below","basis_pct":-0.05263157894736842,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":1.0,"kalshi_size":207.0,"poly_price":0.986,"poly_size":91.42,"combined_cost":1.986,"kalshi_fee":0.0,"poly_fee":0.000993888000000001,"total_fee":0.000993888000000001,"worst_pnl":-0.986993888,"best_pnl":0.01300611200000001,"mid_pnl":0.01300611200000001,"net_return":-0.49697577442094665,"annualized":null,"max_contracts":91.42,"total_gain":-90.23098124096,"poly_volume":12056.900111999998,"days_to_expiry":null,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $40.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $40.00, then the market resolves to Yes.","kalshi_yes_label":"Below $40.00","kalshi_no_label":"Below $40.00","poly_question":"Will Hyperliquid dip to $38 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-3750","kalshi_strike":37.5,"poly_slug":"will-hyperliquid-dip-to-38-in-may","poly_strike":38.0,"direction":"Below","basis_pct":0.013157894736842105,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":1889.51,"poly_price":0.02,"poly_size":84.49,"combined_cost":1.02,"kalshi_fee":0.0,"poly_fee":0.0014111999999999998,"total_fee":0.0014111999999999998,"worst_pnl":-0.021411200000000002,"best_pnl":0.9785888,"mid_pnl":0.9785888,"net_return":-0.02099137254901961,"annualized":-0.6965319073083779,"max_contracts":84.49,"total_gain":-1.809032288,"poly_volume":12056.900111999998,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $37.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $37.50, then the market resolves to Yes.","kalshi_yes_label":"Below $37.50","kalshi_no_label":"Below $37.50","poly_question":"Will Hyperliquid dip to $38 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-3500","kalshi_strike":35.0,"poly_slug":"will-hyperliquid-dip-to-38-in-may","poly_strike":38.0,"direction":"Below","basis_pct":0.07894736842105263,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":10.0,"poly_price":0.02,"poly_size":84.49,"combined_cost":1.01,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0014111999999999998,"total_fee":0.0021042000000000005,"worst_pnl":-0.01210420000000001,"best_pnl":0.9878958,"mid_pnl":0.9878958,"net_return":-0.011984356435643573,"annualized":-0.39766273627362764,"max_contracts":10.0,"total_gain":-0.1210420000000001,"poly_volume":12056.900111999998,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $35.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $35.00, then the market resolves to Yes.","kalshi_yes_label":"Below $35.00","kalshi_no_label":"Below $35.00","poly_question":"Will Hyperliquid dip to $38 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-3250","kalshi_strike":32.5,"poly_slug":"will-hyperliquid-dip-to-32-in-may","poly_strike":32.0,"direction":"Below","basis_pct":-0.015625,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.35,"kalshi_size":710.0,"poly_price":0.995,"poly_size":180.0,"combined_cost":1.345,"kalshi_fee":0.015925,"poly_fee":0.0003582000000000003,"total_fee":0.0162832,"worst_pnl":-0.36128319999999997,"best_pnl":0.6387168000000001,"mid_pnl":0.6387168000000001,"net_return":-0.2686120446096654,"annualized":-8.913036025684352,"max_contracts":180.0,"total_gain":-65.030976,"poly_volume":6250.73622,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $32.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $32.50, then the market resolves to Yes.","kalshi_yes_label":"Below $32.50","kalshi_no_label":"Below $32.50","poly_question":"Will Hyperliquid dip to $32 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-3000","kalshi_strike":30.0,"poly_slug":"will-hyperliquid-dip-to-32-in-may","poly_strike":32.0,"direction":"Below","basis_pct":0.0625,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":10.0,"poly_price":0.021,"poly_size":100.0,"combined_cost":1.011,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0014802479999999998,"total_fee":0.0021732480000000005,"worst_pnl":-0.013173248000000082,"best_pnl":0.9868267519999999,"mid_pnl":0.9868267519999999,"net_return":-0.013029918892186037,"annualized":-0.43235639960435485,"max_contracts":10.0,"total_gain":-0.13173248000000082,"poly_volume":6250.73622,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $30.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $30.00, then the market resolves to Yes.","kalshi_yes_label":"Below $30.00","kalshi_no_label":"Below $30.00","poly_question":"Will Hyperliquid dip to $32 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-2750","kalshi_strike":27.5,"poly_slug":"will-hyperliquid-dip-to-28-in-may","poly_strike":28.0,"direction":"Below","basis_pct":0.017857142857142856,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":573.0,"poly_price":0.004,"poly_size":4991.99,"combined_cost":1.004,"kalshi_fee":0.0,"poly_fee":0.00028684800000000003,"total_fee":0.00028684800000000003,"worst_pnl":-0.00428684800000001,"best_pnl":0.995713152,"mid_pnl":0.995713152,"net_return":-0.0042697689243027985,"annualized":-0.14167869612459286,"max_contracts":573.0,"total_gain":-2.4563639040000056,"poly_volume":13131.718070000003,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $27.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $27.50, then the market resolves to Yes.","kalshi_yes_label":"Below $27.50","kalshi_no_label":"Below $27.50","poly_question":"Will Hyperliquid dip to $28 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-2500","kalshi_strike":25.0,"poly_slug":"will-hyperliquid-dip-to-24-in-may","poly_strike":24.0,"direction":"Below","basis_pct":-0.041666666666666664,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.04,"kalshi_size":400.0,"poly_price":0.999,"poly_size":1082.75,"combined_cost":1.039,"kalshi_fee":0.0026880000000000003,"poly_fee":7.192800000000006e-05,"total_fee":0.0027599280000000005,"worst_pnl":-0.04175992800000006,"best_pnl":0.9582400719999999,"mid_pnl":0.9582400719999999,"net_return":-0.0401924234841194,"annualized":-1.333657688336689,"max_contracts":400.0,"total_gain":-16.703971200000023,"poly_volume":38510.04213200002,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $25.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $25.00, then the market resolves to Yes.","kalshi_yes_label":"Below $25.00","kalshi_no_label":"Below $25.00","poly_question":"Will Hyperliquid dip to $24 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"HYPE","kalshi_ticker":"KXHYPEMINMON-HYPE-26MAY31-2250","kalshi_strike":22.5,"poly_slug":"will-hyperliquid-dip-to-24-in-may","poly_strike":24.0,"direction":"Below","basis_pct":0.0625,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":1009.88,"poly_price":0.004,"poly_size":500.0,"combined_cost":1.004,"kalshi_fee":0.0,"poly_fee":0.00028684800000000003,"total_fee":0.00028684800000000003,"worst_pnl":-0.00428684800000001,"best_pnl":0.995713152,"mid_pnl":0.995713152,"net_return":-0.0042697689243027985,"annualized":-0.14167869612459286,"max_contracts":500.0,"total_gain":-2.143424000000005,"poly_volume":38510.04213200002,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will HYPE trimmed mean be below $22.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of HYPE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $22.50, then the market resolves to Yes.","kalshi_yes_label":"Below $22.50","kalshi_no_label":"Below $22.50","poly_question":"Will Hyperliquid dip to $24 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for HYPEUSDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the HYPEUSDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/hyperliquid-up-or-down-on-may-22-Fyo58T8HF0AC.jpg"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-9750000","kalshi_strike":97500.0,"poly_slug":"will-bitcoin-reach-95k-in-may-2026","poly_strike":95000.0,"direction":"Above","basis_pct":0.02564102564102564,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":31511.57,"poly_price":0.008,"poly_size":5707.5,"combined_cost":1.008,"kalshi_fee":0.0,"poly_fee":0.000571392,"total_fee":0.000571392,"worst_pnl":-0.008571392000000011,"best_pnl":0.991428608,"mid_pnl":0.991428608,"net_return":-0.00850336507936509,"annualized":-0.28215711399711435,"max_contracts":5707.5,"total_gain":-48.92121984000006,"poly_volume":1632164.6135350033,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be above $97500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n97500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $97,500.00","kalshi_no_label":"Above $97,500.00","poly_question":"Will Bitcoin reach $95,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-9500000","kalshi_strike":95000.0,"poly_slug":"will-bitcoin-reach-95k-in-may-2026","poly_strike":95000.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":359.6,"poly_price":0.008,"poly_size":5707.5,"combined_cost":0.998,"kalshi_fee":0.0006930000000000006,"poly_fee":0.000571392,"total_fee":0.0012643920000000005,"worst_pnl":0.0007356079999999432,"best_pnl":0.0007356080000000074,"mid_pnl":null,"net_return":0.0007370821643286004,"annualized":0.02445772636181265,"max_contracts":359.6,"total_gain":0.2645246367999796,"poly_volume":1632164.6135350033,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be above $95000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n95000.00, then the market resolves to Yes.","kalshi_yes_label":"Above $95,000.00","kalshi_no_label":"Above $95,000.00","poly_question":"Will Bitcoin reach $95,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-9250000","kalshi_strike":92500.0,"poly_slug":"will-bitcoin-reach-95k-in-may-2026","poly_strike":95000.0,"direction":"Above","basis_pct":-0.02702702702702703,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.02,"kalshi_size":10010.8,"poly_price":0.993,"poly_size":4774.29,"combined_cost":1.013,"kalshi_fee":0.0013720000000000002,"poly_fee":0.0005004720000000004,"total_fee":0.0018724720000000005,"worst_pnl":-0.014872472000000081,"best_pnl":0.9851275279999999,"mid_pnl":0.9851275279999999,"net_return":-0.014681611056268591,"annualized":-0.487162548685276,"max_contracts":4774.29,"total_gain":-71.00549434488039,"poly_volume":1632164.6135350033,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be above $92500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n92500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $92,500.00","kalshi_no_label":"Above $92,500.00","poly_question":"Will Bitcoin reach $95,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-9000000","kalshi_strike":90000.0,"poly_slug":"will-bitcoin-reach-90k-in-may-2026","poly_strike":90000.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.98,"kalshi_size":279.65,"poly_price":0.014,"poly_size":772.8,"combined_cost":0.994,"kalshi_fee":0.0013720000000000015,"poly_fee":0.000993888,"total_fee":0.0023658880000000018,"worst_pnl":0.003634111999999967,"best_pnl":0.0036341120000000157,"mid_pnl":null,"net_return":0.0036560482897383976,"annualized":0.12131432961404683,"max_contracts":279.65,"total_gain":1.0162794207999908,"poly_volume":2050824.142309995,"days_to_expiry":11,"status":"ARB","kalshi_title":"Will BTC trimmed mean be above $90000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n90000.00, then the market resolves to Yes.","kalshi_yes_label":"Above $90,000.00","kalshi_no_label":"Above $90,000.00","poly_question":"Will Bitcoin reach $90,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-8750000","kalshi_strike":87500.0,"poly_slug":"will-bitcoin-reach-85k-in-may-2026","poly_strike":85000.0,"direction":"Above","basis_pct":0.02857142857142857,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.97,"kalshi_size":59688.99,"poly_price":0.08,"poly_size":7072.35,"combined_cost":1.05,"kalshi_fee":0.002037000000000002,"poly_fee":0.0052992,"total_fee":0.007336200000000001,"worst_pnl":-0.057336199999999976,"best_pnl":0.9426638000000002,"mid_pnl":0.9426638000000002,"net_return":-0.05460590476190474,"annualized":-1.8119232034632025,"max_contracts":7072.35,"total_gain":-405.50167406999986,"poly_volume":2449963.637900003,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be above $87500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n87500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $87,500.00","kalshi_no_label":"Above $87,500.00","poly_question":"Will Bitcoin reach $85,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-8500000","kalshi_strike":85000.0,"poly_slug":"will-bitcoin-reach-85k-in-may-2026","poly_strike":85000.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.08,"kalshi_size":1246.93,"poly_price":0.93,"poly_size":2877.61,"combined_cost":1.01,"kalshi_fee":0.005152000000000001,"poly_fee":0.004687199999999996,"total_fee":0.009839199999999998,"worst_pnl":-0.019839200000000057,"best_pnl":-0.019839200000000057,"mid_pnl":null,"net_return":-0.019642772277227778,"annualized":-0.6517828982898308,"max_contracts":1246.93,"total_gain":-24.73809365600007,"poly_volume":2449963.637900003,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be above $85000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n85000.00, then the market resolves to Yes.","kalshi_yes_label":"Above $85,000.00","kalshi_no_label":"Above $85,000.00","poly_question":"Will Bitcoin reach $85,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMAXMON-BTC-26MAY31-8250000","kalshi_strike":82500.0,"poly_slug":"will-bitcoin-reach-85k-in-may-2026","poly_strike":85000.0,"direction":"Above","basis_pct":-0.030303030303030304,"basis_favorable":false,"best_side":"NO+YES","kalshi_price":0.07,"kalshi_size":85585.86,"poly_price":0.08,"poly_size":7072.35,"combined_cost":0.15000000000000002,"kalshi_fee":0.004557,"poly_fee":0.0052992,"total_fee":0.009856199999999999,"worst_pnl":-0.1598562,"best_pnl":0.8401438000000001,"mid_pnl":-0.1598562,"net_return":-1.0657079999999999,"annualized":null,"max_contracts":7072.35,"total_gain":-1130.5589960700001,"poly_volume":2449963.637900003,"days_to_expiry":null,"status":"BAD BASIS","kalshi_title":"Will BTC trimmed mean be above $82500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n82500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $82,500.00","kalshi_no_label":"Above $82,500.00","poly_question":"Will Bitcoin reach $85,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-7500000","kalshi_strike":75000.0,"poly_slug":"will-bitcoin-dip-to-75k-in-may-2026","poly_strike":75000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.52,"kalshi_size":58.86,"poly_price":0.48,"poly_size":2080.91,"combined_cost":1.0,"kalshi_fee":0.017472,"poly_fee":0.017971199999999996,"total_fee":0.035443199999999994,"worst_pnl":-0.03544320000000001,"best_pnl":-0.03544320000000001,"mid_pnl":null,"net_return":-0.03544320000000001,"annualized":-1.1760698181818183,"max_contracts":58.86,"total_gain":-2.0861867520000006,"poly_volume":1689548.989606002,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $75000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $75000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $75,000.00","kalshi_no_label":"Below $75,000.00","poly_question":"Will Bitcoin dip to $75,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-7250000","kalshi_strike":72500.0,"poly_slug":"will-bitcoin-dip-to-70k-in-may-2026","poly_strike":70000.0,"direction":"Below","basis_pct":-0.03571428571428571,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.22,"kalshi_size":28200.33,"poly_price":0.93,"poly_size":1969.34,"combined_cost":1.1500000000000001,"kalshi_fee":0.012012000000000002,"poly_fee":0.004687199999999996,"total_fee":0.016699199999999997,"worst_pnl":-0.16669920000000005,"best_pnl":0.8333008,"mid_pnl":0.8333008,"net_return":-0.14495582608695654,"annualized":-4.8098978656126485,"max_contracts":1969.34,"total_gain":-328.2874025280001,"poly_volume":1799152.6618430025,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $72500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $72500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $72,500.00","kalshi_no_label":"Below $72,500.00","poly_question":"Will Bitcoin dip to $70,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-7000000","kalshi_strike":70000.0,"poly_slug":"will-bitcoin-dip-to-70k-in-may-2026","poly_strike":70000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.93,"kalshi_size":2231.12,"poly_price":0.08,"poly_size":41937.98,"combined_cost":1.01,"kalshi_fee":0.004556999999999997,"poly_fee":0.0052992,"total_fee":0.009856199999999996,"worst_pnl":-0.019856200000000046,"best_pnl":-0.01985619999999999,"mid_pnl":null,"net_return":-0.019659603960396083,"annualized":-0.6523414041404154,"max_contracts":2231.12,"total_gain":-44.3015649440001,"poly_volume":1799152.6618430025,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $70000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $70000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $70,000.00","kalshi_no_label":"Below $70,000.00","poly_question":"Will Bitcoin dip to $70,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-6750000","kalshi_strike":67500.0,"poly_slug":"will-bitcoin-dip-to-65k-in-may-2026","poly_strike":65000.0,"direction":"Below","basis_pct":-0.038461538461538464,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.07,"kalshi_size":22029.06,"poly_price":0.981,"poly_size":7108.69,"combined_cost":1.051,"kalshi_fee":0.004557,"poly_fee":0.0013420080000000013,"total_fee":0.005899008000000002,"worst_pnl":-0.05689900800000003,"best_pnl":0.943100992,"mid_pnl":0.943100992,"net_return":-0.05413797145575645,"annualized":-1.7963963255773732,"max_contracts":7108.69,"total_gain":-404.4774091795202,"poly_volume":1861835.7692609965,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $67500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $67500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $67,500.00","kalshi_no_label":"Below $67,500.00","poly_question":"Will Bitcoin dip to $65,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-6500000","kalshi_strike":65000.0,"poly_slug":"will-bitcoin-dip-to-65k-in-may-2026","poly_strike":65000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.97,"kalshi_size":2340.24,"poly_price":0.02,"poly_size":523.21,"combined_cost":0.99,"kalshi_fee":0.002037000000000002,"poly_fee":0.0014111999999999998,"total_fee":0.003448200000000002,"worst_pnl":0.006551800000000024,"best_pnl":0.0065518000000001075,"mid_pnl":null,"net_return":0.006617979797979822,"annualized":0.21959660238751227,"max_contracts":523.21,"total_gain":3.427967278000013,"poly_volume":1861835.7692609965,"days_to_expiry":11,"status":"ARB","kalshi_title":"Will BTC trimmed mean be below $65000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $65000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $65,000.00","kalshi_no_label":"Below $65,000.00","poly_question":"Will Bitcoin dip to $65,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-6250000","kalshi_strike":62500.0,"poly_slug":"will-bitcoin-dip-to-60k-in-may-2026","poly_strike":60000.0,"direction":"Below","basis_pct":-0.041666666666666664,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.04,"kalshi_size":11041.5,"poly_price":0.992,"poly_size":586.99,"combined_cost":1.032,"kalshi_fee":0.0026880000000000003,"poly_fee":0.0005713920000000004,"total_fee":0.0032593920000000007,"worst_pnl":-0.035259392000000056,"best_pnl":0.9647406079999999,"mid_pnl":0.9647406079999999,"net_return":-0.034166077519379896,"annualized":-1.1336925722339692,"max_contracts":586.99,"total_gain":-20.696910510080034,"poly_volume":1497940.9546859965,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $62500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $62500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $62,500.00","kalshi_no_label":"Below $62,500.00","poly_question":"Will Bitcoin dip to $60,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-6000000","kalshi_strike":60000.0,"poly_slug":"will-bitcoin-dip-to-60k-in-may-2026","poly_strike":60000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":588.67,"poly_price":0.01,"poly_size":10907.57,"combined_cost":1.0,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0007128,"total_fee":0.0014058000000000005,"worst_pnl":-0.0014058000000000126,"best_pnl":-0.0014057999999999918,"mid_pnl":null,"net_return":-0.0014058000000000126,"annualized":-0.04664700000000042,"max_contracts":588.67,"total_gain":-0.8275522860000074,"poly_volume":1497940.9546859965,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $60000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $60000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $60,000.00","kalshi_no_label":"Below $60,000.00","poly_question":"Will Bitcoin dip to $60,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"BTC","kalshi_ticker":"KXBTCMINMON-BTC-26MAY31-5750000","kalshi_strike":57500.0,"poly_slug":"will-bitcoin-dip-to-55k-in-may-2026","poly_strike":55000.0,"direction":"Below","basis_pct":-0.045454545454545456,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.02,"kalshi_size":1732.74,"poly_price":0.994,"poly_size":8688.59,"combined_cost":1.014,"kalshi_fee":0.0013720000000000002,"poly_fee":0.0004294080000000003,"total_fee":0.0018014080000000004,"worst_pnl":-0.015801408000000072,"best_pnl":0.9841985919999999,"mid_pnl":0.9841985919999999,"net_return":-0.015583242603550367,"annualized":-0.5170803227541713,"max_contracts":1732.74,"total_gain":-27.379731697920125,"poly_volume":879491.7824090027,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BTC trimmed mean be below $57500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BTC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $57500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $57,500.00","kalshi_no_label":"Below $57,500.00","poly_question":"Will Bitcoin dip to $55,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BTC/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BTC/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-425000","kalshi_strike":4250.0,"poly_slug":"will-ethereum-reach-4000-in-may-2026","poly_strike":4000.0,"direction":"Above","basis_pct":0.058823529411764705,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":333.0,"poly_price":0.001,"poly_size":6663.42,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-0.001071928,"best_pnl":0.998928072,"mid_pnl":0.998928072,"net_return":-0.001070857142857143,"annualized":-0.035532987012987016,"max_contracts":333.0,"total_gain":-0.356952024,"poly_volume":229211.54068500007,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $4250.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n4250.00, then the market resolves to Yes.","kalshi_yes_label":"Above $4,250.00","kalshi_no_label":"Above $4,250.00","poly_question":"Will Ethereum reach $4,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-400000","kalshi_strike":4000.0,"poly_slug":"will-ethereum-reach-4000-in-may-2026","poly_strike":4000.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":40.0,"poly_price":0.001,"poly_size":6663.42,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-0.001071928,"best_pnl":-0.0010719279999999998,"mid_pnl":null,"net_return":-0.001070857142857143,"annualized":-0.035532987012987016,"max_contracts":40.0,"total_gain":-0.04287712,"poly_volume":229211.54068500007,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $4000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n4000.00, then the market resolves to Yes.","kalshi_yes_label":"Above $4,000.00","kalshi_no_label":"Above $4,000.00","poly_question":"Will Ethereum reach $4,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-375000","kalshi_strike":3750.0,"poly_slug":"will-ethereum-reach-3800-in-may-2026","poly_strike":3800.0,"direction":"Above","basis_pct":-0.013333333333333334,"basis_favorable":false,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":2361.51,"poly_price":0.001,"poly_size":3980.44,"combined_cost":1.001,"kalshi_fee":0.0,"poly_fee":7.1928e-05,"total_fee":7.1928e-05,"worst_pnl":-1.001071928,"best_pnl":-0.0010719279999999998,"mid_pnl":-1.001071928,"net_return":-1.0000718561438562,"annualized":-33.184202499318864,"max_contracts":2361.51,"total_gain":-2364.0413686912802,"poly_volume":176303.30860999986,"days_to_expiry":11,"status":"BAD BASIS","kalshi_title":"Will ETH trimmed mean be above $3750.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n3750.00, then the market resolves to Yes.","kalshi_yes_label":"Above $3,750.00","kalshi_no_label":"Above $3,750.00","poly_question":"Will Ethereum reach $3,800 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-350000","kalshi_strike":3500.0,"poly_slug":"will-ethereum-reach-3400-in-may-2026","poly_strike":3400.0,"direction":"Above","basis_pct":0.02857142857142857,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":5320.92,"poly_price":0.002,"poly_size":6889.08,"combined_cost":1.002,"kalshi_fee":0.0,"poly_fee":0.000143712,"total_fee":0.000143712,"worst_pnl":-0.002143712,"best_pnl":0.997856288,"mid_pnl":0.997856288,"net_return":-0.0021394331337325346,"annualized":-0.07099028125567046,"max_contracts":5320.92,"total_gain":-11.40652005504,"poly_volume":194041.3046019998,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $3500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n3500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $3,500.00","kalshi_no_label":"Above $3,500.00","poly_question":"Will Ethereum reach $3,400 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-325000","kalshi_strike":3250.0,"poly_slug":"will-ethereum-reach-3200-in-may-2026","poly_strike":3200.0,"direction":"Above","basis_pct":0.015384615384615385,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":8922.57,"poly_price":0.002,"poly_size":7659.71,"combined_cost":1.002,"kalshi_fee":0.0,"poly_fee":0.000143712,"total_fee":0.000143712,"worst_pnl":-0.002143712,"best_pnl":0.997856288,"mid_pnl":0.997856288,"net_return":-0.0021394331337325346,"annualized":-0.07099028125567046,"max_contracts":7659.71,"total_gain":-16.420212243519998,"poly_volume":125863.47552699984,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $3250.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n3250.00, then the market resolves to Yes.","kalshi_yes_label":"Above $3,250.00","kalshi_no_label":"Above $3,250.00","poly_question":"Will Ethereum reach $3,200 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-300000","kalshi_strike":3000.0,"poly_slug":"will-ethereum-reach-3000-in-may-2026","poly_strike":3000.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":17927.65,"poly_price":0.003,"poly_size":2084.8,"combined_cost":1.003,"kalshi_fee":0.0,"poly_fee":0.00021535199999999998,"total_fee":0.00021535199999999998,"worst_pnl":-0.0032153520000000047,"best_pnl":-0.003215352,"mid_pnl":null,"net_return":-0.0032057347956131656,"annualized":-0.10637210912716413,"max_contracts":2084.8,"total_gain":-6.703365849600011,"poly_volume":322900.56246600026,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $3000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n3000.00, then the market resolves to Yes.","kalshi_yes_label":"Above $3,000.00","kalshi_no_label":"Above $3,000.00","poly_question":"Will Ethereum reach $3,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-275000","kalshi_strike":2750.0,"poly_slug":"will-ethereum-reach-2800-in-may-2026","poly_strike":2800.0,"direction":"Above","basis_pct":-0.01818181818181818,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.02,"kalshi_size":600.0,"poly_price":0.995,"poly_size":21902.93,"combined_cost":1.015,"kalshi_fee":0.0013720000000000002,"poly_fee":0.0003582000000000003,"total_fee":0.0017302000000000005,"worst_pnl":-0.01673020000000003,"best_pnl":0.9832698,"mid_pnl":0.9832698,"net_return":-0.01648295566502466,"annualized":-0.5469344379758183,"max_contracts":600.0,"total_gain":-10.038120000000017,"poly_volume":310805.2724449998,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $2750.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n2750.00, then the market resolves to Yes.","kalshi_yes_label":"Above $2,750.00","kalshi_no_label":"Above $2,750.00","poly_question":"Will Ethereum reach $2,800 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMAXMON-ETH-26MAY31-250000","kalshi_strike":2500.0,"poly_slug":"will-ethereum-reach-2600-in-may-2026","poly_strike":2600.0,"direction":"Above","basis_pct":-0.04,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.04,"kalshi_size":386.17,"poly_price":0.98,"poly_size":115.87,"combined_cost":1.02,"kalshi_fee":0.0026880000000000003,"poly_fee":0.0014112000000000011,"total_fee":0.004099200000000002,"worst_pnl":-0.024099199999999987,"best_pnl":0.9759008,"mid_pnl":0.9759008,"net_return":-0.023626666666666653,"annualized":-0.7839757575757571,"max_contracts":115.87,"total_gain":-2.7923743039999986,"poly_volume":523135.8410720005,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be above $2500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n2500.00, then the market resolves to Yes.","kalshi_yes_label":"Above $2,500.00","kalshi_no_label":"Above $2,500.00","poly_question":"Will Ethereum reach $2,600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-75000","kalshi_strike":750.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ETH trimmed mean be below $750.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $750.00, then the market resolves to Yes.","kalshi_yes_label":"Below $750.00","kalshi_no_label":"Below $750.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-50000","kalshi_strike":500.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ETH trimmed mean be below $500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $500.00","kalshi_no_label":"Below $500.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-25000","kalshi_strike":250.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ETH trimmed mean be below $250.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $250.00, then the market resolves to Yes.","kalshi_yes_label":"Below $250.00","kalshi_no_label":"Below $250.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-200000","kalshi_strike":2000.0,"poly_slug":"will-ethereum-dip-to-2000-in-may-2026","poly_strike":2000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.69,"kalshi_size":27.4,"poly_price":0.31,"poly_size":20963.99,"combined_cost":1.0,"kalshi_fee":0.014973000000000004,"poly_fee":0.0154008,"total_fee":0.030373800000000003,"worst_pnl":-0.030373800000000006,"best_pnl":-0.03037379999999995,"mid_pnl":null,"net_return":-0.030373800000000006,"annualized":-1.0078579090909092,"max_contracts":27.4,"total_gain":-0.8322421200000001,"poly_volume":375304.4173679996,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be below $2000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $2000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $2,000.00","kalshi_no_label":"Below $2,000.00","poly_question":"Will Ethereum dip to $2,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-175000","kalshi_strike":1750.0,"poly_slug":"will-ethereum-dip-to-2000-in-may-2026","poly_strike":2000.0,"direction":"Below","basis_pct":0.125,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.97,"kalshi_size":10512.35,"poly_price":0.31,"poly_size":20963.99,"combined_cost":1.28,"kalshi_fee":0.002037000000000002,"poly_fee":0.0154008,"total_fee":0.0174378,"worst_pnl":-0.2974378,"best_pnl":0.7025622,"mid_pnl":0.7025622,"net_return":-0.23237328124999998,"annualized":-7.710567968749999,"max_contracts":10512.35,"total_gain":-3126.7702568299997,"poly_volume":375304.4173679996,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be below $1750.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1750.00, then the market resolves to Yes.","kalshi_yes_label":"Below $1,750.00","kalshi_no_label":"Below $1,750.00","poly_question":"Will Ethereum dip to $2,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-150000","kalshi_strike":1500.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ETH trimmed mean be below $1500.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1500.00, then the market resolves to Yes.","kalshi_yes_label":"Below $1,500.00","kalshi_no_label":"Below $1,500.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-125000","kalshi_strike":1250.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ETH trimmed mean be below $1250.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1250.00, then the market resolves to Yes.","kalshi_yes_label":"Below $1,250.00","kalshi_no_label":"Below $1,250.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ETH","kalshi_ticker":"KXETHMINMON-ETH-26MAY31-100000","kalshi_strike":1000.0,"poly_slug":"will-ethereum-dip-to-1000-in-may-2026","poly_strike":1000.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":149.75,"poly_price":0.002,"poly_size":12992.46,"combined_cost":1.002,"kalshi_fee":0.0,"poly_fee":0.000143712,"total_fee":0.000143712,"worst_pnl":-0.002143712,"best_pnl":-0.0021437119999999643,"mid_pnl":null,"net_return":-0.0021394331337325346,"annualized":-0.07099028125567046,"max_contracts":149.75,"total_gain":-0.32102087199999996,"poly_volume":105733.83253200003,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will ETH trimmed mean be below $1000.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ETH after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1000.00, then the market resolves to Yes.","kalshi_yes_label":"Below $1,000.00","kalshi_no_label":"Below $1,000.00","poly_question":"Will Ethereum dip to $1,000 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for ETH/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the ETH/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/ETH+fullsize.jpg"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-9500","kalshi_strike":95.0,"poly_slug":"will-solana-reach-100-in-may-2026","poly_strike":100.0,"direction":"Above","basis_pct":-0.05263157894736842,"basis_favorable":false,"best_side":"NO+YES","kalshi_price":0.21,"kalshi_size":11108.62,"poly_price":0.1,"poly_size":114.99,"combined_cost":0.31,"kalshi_fee":0.011613000000000002,"poly_fee":0.00648,"total_fee":0.018093,"worst_pnl":-0.328093,"best_pnl":0.671907,"mid_pnl":-0.328093,"net_return":-1.0583645161290323,"annualized":null,"max_contracts":114.99,"total_gain":-37.72741407,"poly_volume":175144.98042400018,"days_to_expiry":null,"status":"BAD BASIS","kalshi_title":"Will SOL trimmed mean be above $95.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n95.00, then the market resolves to Yes.","kalshi_yes_label":"Above $95.00","kalshi_no_label":"Above $95.00","poly_question":"Will Solana reach $100 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-9000","kalshi_strike":90.0,"poly_slug":"will-solana-reach-90-in-may-2026","poly_strike":90.0,"direction":"Above","basis_pct":0.0,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO DATA","kalshi_title":"Will SOL trimmed mean be above $90.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n90.00, then the market resolves to Yes.","kalshi_yes_label":"Above $90.00","kalshi_no_label":"Above $90.00","poly_question":null,"poly_description":null,"image":null},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-12500","kalshi_strike":125.0,"poly_slug":"will-solana-reach-130-in-may-2026","poly_strike":130.0,"direction":"Above","basis_pct":-0.04,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.01,"kalshi_size":100.0,"poly_price":0.994,"poly_size":100.0,"combined_cost":1.004,"kalshi_fee":0.0006930000000000001,"poly_fee":0.0004294080000000003,"total_fee":0.0011224080000000005,"worst_pnl":-0.005122408000000078,"best_pnl":0.9948775919999999,"mid_pnl":0.9948775919999999,"net_return":-0.005102000000000078,"annualized":-0.16929363636363895,"max_contracts":100.0,"total_gain":-0.5122408000000078,"poly_volume":170439.20331800025,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be above $125.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n125.00, then the market resolves to Yes.","kalshi_yes_label":"Above $125.00","kalshi_no_label":"Above $125.00","poly_question":"Will Solana reach $130 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-12000","kalshi_strike":120.0,"poly_slug":"will-solana-reach-120-in-may-2026","poly_strike":120.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":5790.98,"poly_price":0.007,"poly_size":942.0,"combined_cost":1.007,"kalshi_fee":0.0,"poly_fee":0.000500472,"total_fee":0.000500472,"worst_pnl":-0.007500472000000036,"best_pnl":-0.007500472,"mid_pnl":null,"net_return":-0.00744833366434959,"annualized":-0.24714925340796365,"max_contracts":942.0,"total_gain":-7.065444624000033,"poly_volume":130366.31278699989,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be above $120.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n120.00, then the market resolves to Yes.","kalshi_yes_label":"Above $120.00","kalshi_no_label":"Above $120.00","poly_question":"Will Solana reach $120 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-11500","kalshi_strike":115.0,"poly_slug":"will-solana-reach-120-in-may-2026","poly_strike":120.0,"direction":"Above","basis_pct":-0.043478260869565216,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.07,"kalshi_size":1638.36,"poly_price":0.995,"poly_size":801.2,"combined_cost":1.065,"kalshi_fee":0.004557,"poly_fee":0.0003582000000000003,"total_fee":0.004915200000000001,"worst_pnl":-0.06991520000000007,"best_pnl":0.9300847999999999,"mid_pnl":0.9300847999999999,"net_return":-0.06564807511737096,"annualized":-2.1783224925309455,"max_contracts":801.2,"total_gain":-56.016058240000056,"poly_volume":130366.31278699989,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be above $115.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n115.00, then the market resolves to Yes.","kalshi_yes_label":"Above $115.00","kalshi_no_label":"Above $115.00","poly_question":"Will Solana reach $120 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-11000","kalshi_strike":110.0,"poly_slug":"will-solana-reach-110-in-may-2026","poly_strike":110.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.97,"kalshi_size":154.44,"poly_price":0.019,"poly_size":826.0,"combined_cost":0.989,"kalshi_fee":0.002037000000000002,"poly_fee":0.0013420079999999998,"total_fee":0.003379008000000002,"worst_pnl":0.007620992000000028,"best_pnl":0.007620992000000104,"mid_pnl":null,"net_return":0.007705755308392344,"annualized":0.25569097159665505,"max_contracts":154.44,"total_gain":1.1769860044800042,"poly_volume":137023.53718899997,"days_to_expiry":11,"status":"ARB","kalshi_title":"Will SOL trimmed mean be above $110.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n110.00, then the market resolves to Yes.","kalshi_yes_label":"Above $110.00","kalshi_no_label":"Above $110.00","poly_question":"Will Solana reach $110 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-10500","kalshi_strike":105.0,"poly_slug":"will-solana-reach-100-in-may-2026","poly_strike":100.0,"direction":"Above","basis_pct":0.047619047619047616,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":28077.23,"poly_price":0.1,"poly_size":114.99,"combined_cost":1.09,"kalshi_fee":0.0006930000000000006,"poly_fee":0.00648,"total_fee":0.0071730000000000006,"worst_pnl":-0.09717300000000006,"best_pnl":0.9028269999999999,"mid_pnl":0.9028269999999999,"net_return":-0.08914954128440372,"annualized":-2.958143869891578,"max_contracts":114.99,"total_gain":-11.173923270000007,"poly_volume":175144.98042400018,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be above $105.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n105.00, then the market resolves to Yes.","kalshi_yes_label":"Above $105.00","kalshi_no_label":"Above $105.00","poly_question":"Will Solana reach $100 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMAXMON-SOL-26MAY31-10000","kalshi_strike":100.0,"poly_slug":"will-solana-reach-100-in-may-2026","poly_strike":100.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.9,"kalshi_size":117.06,"poly_price":0.1,"poly_size":114.99,"combined_cost":1.0,"kalshi_fee":0.0063,"poly_fee":0.00648,"total_fee":0.01278,"worst_pnl":-0.012780000000000027,"best_pnl":-0.012780000000000014,"mid_pnl":null,"net_return":-0.012780000000000027,"annualized":-0.42406363636363725,"max_contracts":114.99,"total_gain":-1.469572200000003,"poly_volume":175144.98042400018,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be above $100.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n100.00, then the market resolves to Yes.","kalshi_yes_label":"Above $100.00","kalshi_no_label":"Above $100.00","poly_question":"Will Solana reach $100 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-8000","kalshi_strike":80.0,"poly_slug":"will-solana-dip-to-70-in-may-2026","poly_strike":70.0,"direction":"Below","basis_pct":-0.14285714285714285,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.36,"kalshi_size":3076.75,"poly_price":0.969,"poly_size":93.21,"combined_cost":1.329,"kalshi_fee":0.016128,"poly_fee":0.0021628080000000017,"total_fee":0.018290808000000002,"worst_pnl":-0.347290808,"best_pnl":0.652709192,"mid_pnl":0.652709192,"net_return":-0.2613173875094056,"annualized":-8.670986040084822,"max_contracts":93.21,"total_gain":-32.370976213679995,"poly_volume":118068.608489,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $80.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $80.00, then the market resolves to Yes.","kalshi_yes_label":"Below $80.00","kalshi_no_label":"Below $80.00","poly_question":"Will Solana dip to $70 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-7500","kalshi_strike":75.0,"poly_slug":"will-solana-dip-to-70-in-may-2026","poly_strike":70.0,"direction":"Below","basis_pct":-0.07142857142857142,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.1,"kalshi_size":2229.3,"poly_price":0.969,"poly_size":93.21,"combined_cost":1.069,"kalshi_fee":0.006300000000000001,"poly_fee":0.0021628080000000017,"total_fee":0.008462808000000002,"worst_pnl":-0.07746280799999998,"best_pnl":0.9225371920000001,"mid_pnl":0.9225371920000001,"net_return":-0.07246286997193638,"annualized":-2.404449776341525,"max_contracts":93.21,"total_gain":-7.220308333679998,"poly_volume":118068.608489,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $75.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $75.00, then the market resolves to Yes.","kalshi_yes_label":"Below $75.00","kalshi_no_label":"Below $75.00","poly_question":"Will Solana dip to $70 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-7000","kalshi_strike":70.0,"poly_slug":"will-solana-dip-to-70-in-may-2026","poly_strike":70.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.98,"kalshi_size":2.0,"poly_price":0.04,"poly_size":97.8,"combined_cost":1.02,"kalshi_fee":0.0013720000000000015,"poly_fee":0.0027647999999999995,"total_fee":0.004136800000000001,"worst_pnl":-0.02413680000000007,"best_pnl":-0.024136799999999983,"mid_pnl":null,"net_return":-0.023663529411764774,"annualized":-0.7851989304812856,"max_contracts":2.0,"total_gain":-0.04827360000000014,"poly_volume":118068.608489,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $70.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $70.00, then the market resolves to Yes.","kalshi_yes_label":"Below $70.00","kalshi_no_label":"Below $70.00","poly_question":"Will Solana dip to $70 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-6500","kalshi_strike":65.0,"poly_slug":"will-solana-dip-to-60-in-may-2026","poly_strike":60.0,"direction":"Below","basis_pct":-0.08333333333333333,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.06,"kalshi_size":1040.22,"poly_price":0.991,"poly_size":323.0,"combined_cost":1.051,"kalshi_fee":0.003948,"poly_fee":0.0006421680000000006,"total_fee":0.004590168,"worst_pnl":-0.05559016800000005,"best_pnl":0.944409832,"mid_pnl":0.944409832,"net_return":-0.05289264319695533,"annualized":-1.755074069717154,"max_contracts":323.0,"total_gain":-17.955624264000015,"poly_volume":141463.92464400007,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $65.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $65.00, then the market resolves to Yes.","kalshi_yes_label":"Below $65.00","kalshi_no_label":"Below $65.00","poly_question":"Will Solana dip to $60 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-6000","kalshi_strike":60.0,"poly_slug":"will-solana-dip-to-60-in-may-2026","poly_strike":60.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":1375.54,"poly_price":0.01,"poly_size":437.28,"combined_cost":1.01,"kalshi_fee":0.0,"poly_fee":0.0007128,"total_fee":0.0007128,"worst_pnl":-0.0107128,"best_pnl":-0.010712799999999967,"mid_pnl":null,"net_return":-0.010606732673267326,"annualized":-0.3519506750675067,"max_contracts":437.28,"total_gain":-4.684493184,"poly_volume":141463.92464400007,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $60.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $60.00, then the market resolves to Yes.","kalshi_yes_label":"Below $60.00","kalshi_no_label":"Below $60.00","poly_question":"Will Solana dip to $60 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-5500","kalshi_strike":55.0,"poly_slug":"will-solana-dip-to-50-in-may-2026","poly_strike":50.0,"direction":"Below","basis_pct":-0.1,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.04,"kalshi_size":3000.0,"poly_price":0.997,"poly_size":5988.32,"combined_cost":1.037,"kalshi_fee":0.0026880000000000003,"poly_fee":0.0002153520000000002,"total_fee":0.0029033520000000005,"worst_pnl":-0.03990335200000006,"best_pnl":0.9600966479999999,"mid_pnl":0.9600966479999999,"net_return":-0.03847960655737711,"annualized":-1.2768233084947858,"max_contracts":3000.0,"total_gain":-119.71005600000018,"poly_volume":168456.67932399976,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $55.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $55.00, then the market resolves to Yes.","kalshi_yes_label":"Below $55.00","kalshi_no_label":"Below $55.00","poly_question":"Will Solana dip to $50 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-5000","kalshi_strike":50.0,"poly_slug":"will-solana-dip-to-50-in-may-2026","poly_strike":50.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":124.24,"poly_price":0.006,"poly_size":777.0,"combined_cost":1.006,"kalshi_fee":0.0,"poly_fee":0.000429408,"total_fee":0.000429408,"worst_pnl":-0.006429408000000025,"best_pnl":-0.006429408,"mid_pnl":null,"net_return":-0.006391061630218713,"annualized":-0.21206704500271184,"max_contracts":124.24,"total_gain":-0.7987896499200031,"poly_volume":168456.67932399976,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $50.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $50.00, then the market resolves to Yes.","kalshi_yes_label":"Below $50.00","kalshi_no_label":"Below $50.00","poly_question":"Will Solana dip to $50 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"SOL","kalshi_ticker":"KXSOLMINMON-SOL-26MAY31-4500","kalshi_strike":45.0,"poly_slug":"will-solana-dip-to-50-in-may-2026","poly_strike":50.0,"direction":"Below","basis_pct":0.1,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":6.0,"poly_price":0.006,"poly_size":777.0,"combined_cost":1.006,"kalshi_fee":0.0,"poly_fee":0.000429408,"total_fee":0.000429408,"worst_pnl":-0.006429408000000025,"best_pnl":0.993570592,"mid_pnl":0.993570592,"net_return":-0.006391061630218713,"annualized":-0.21206704500271184,"max_contracts":6.0,"total_gain":-0.03857644800000015,"poly_volume":168456.67932399976,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will SOL trimmed mean be below $45.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of SOL after issuance and through 11:59 PM ET on May 31, 2026 is ever below $45.00, then the market resolves to Yes.","kalshi_yes_label":"Below $45.00","kalshi_no_label":"Below $45.00","poly_question":"Will Solana dip to $50 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for SOL/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the SOL/USDT Low prices available at\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-210","kalshi_strike":2.1,"poly_slug":"will-xrp-reach-2-in-may-2026","poly_strike":2.0,"direction":"Above","basis_pct":0.04761904761904766,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":2999.0,"poly_price":0.012,"poly_size":476.88,"combined_cost":1.002,"kalshi_fee":0.0006930000000000006,"poly_fee":0.000853632,"total_fee":0.0015466320000000005,"worst_pnl":-0.0035466320000000495,"best_pnl":0.996453368,"mid_pnl":0.996453368,"net_return":-0.0035395528942116262,"annualized":-0.1174488005806585,"max_contracts":476.88,"total_gain":-1.6913178681600236,"poly_volume":128891.27750399991,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will XRP trimmed mean be above $2.10 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n2.10, then the market resolves to Yes.","kalshi_yes_label":"Above $2.10","kalshi_no_label":"Above $2.10","poly_question":"Will XRP reach $2.00 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-200","kalshi_strike":2.0,"poly_slug":"will-xrp-reach-2-in-may-2026","poly_strike":2.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.98,"kalshi_size":1.25,"poly_price":0.012,"poly_size":476.88,"combined_cost":0.992,"kalshi_fee":0.0013720000000000015,"poly_fee":0.000853632,"total_fee":0.0022256320000000017,"worst_pnl":0.005774367999999974,"best_pnl":0.005774368000000016,"mid_pnl":null,"net_return":0.005820935483870942,"annualized":0.1931492228738994,"max_contracts":1.25,"total_gain":0.007217959999999968,"poly_volume":128891.27750399991,"days_to_expiry":11,"status":"ARB","kalshi_title":"Will XRP trimmed mean be above $2.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n2.00, then the market resolves to Yes.","kalshi_yes_label":"Above $2.00","kalshi_no_label":"Above $2.00","poly_question":"Will XRP reach $2.00 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-190","kalshi_strike":1.9,"poly_slug":"will-xrp-reach-1pt8-in-may-2026","poly_strike":1.8,"direction":"Above","basis_pct":0.052631578947368356,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":3431.0,"poly_price":0.02,"poly_size":2752.0,"combined_cost":1.01,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0014111999999999998,"total_fee":0.0021042000000000005,"worst_pnl":-0.01210420000000001,"best_pnl":0.9878958,"mid_pnl":0.9878958,"net_return":-0.011984356435643573,"annualized":-0.39766273627362764,"max_contracts":2752.0,"total_gain":-33.310758400000026,"poly_volume":208842.75628999984,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will XRP trimmed mean be above $1.90 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n1.90, then the market resolves to Yes.","kalshi_yes_label":"Above $1.90","kalshi_no_label":"Above $1.90","poly_question":"Will XRP reach $1.80 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-180","kalshi_strike":1.8,"poly_slug":"will-xrp-reach-1pt8-in-may-2026","poly_strike":1.8,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":1000.0,"poly_price":0.02,"poly_size":2752.0,"combined_cost":1.01,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0014111999999999998,"total_fee":0.0021042000000000005,"worst_pnl":-0.01210420000000001,"best_pnl":-0.012104199999999994,"mid_pnl":null,"net_return":-0.011984356435643573,"annualized":-0.39766273627362764,"max_contracts":1000.0,"total_gain":-12.10420000000001,"poly_volume":208842.75628999984,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will XRP trimmed mean be above $1.80 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n1.80, then the market resolves to Yes.","kalshi_yes_label":"Above $1.80","kalshi_no_label":"Above $1.80","poly_question":"Will XRP reach $1.80 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-170","kalshi_strike":1.7,"poly_slug":"will-xrp-reach-1pt6-in-may-2026","poly_strike":1.6,"direction":"Above","basis_pct":0.05882352941176463,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.96,"kalshi_size":15109.4,"poly_price":0.1,"poly_size":327.55,"combined_cost":1.06,"kalshi_fee":0.002688000000000003,"poly_fee":0.00648,"total_fee":0.009168000000000003,"worst_pnl":-0.06916800000000001,"best_pnl":0.930832,"mid_pnl":0.930832,"net_return":-0.06525283018867925,"annualized":-2.1652075471698113,"max_contracts":327.55,"total_gain":-22.655978400000002,"poly_volume":118676.91601899911,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will XRP trimmed mean be above $1.70 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n1.70, then the market resolves to Yes.","kalshi_yes_label":"Above $1.70","kalshi_no_label":"Above $1.70","poly_question":"Will XRP reach $1.60 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-160","kalshi_strike":1.6,"poly_slug":"will-xrp-reach-1pt6-in-may-2026","poly_strike":1.6,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.92,"kalshi_size":223.84,"poly_price":0.1,"poly_size":327.55,"combined_cost":1.02,"kalshi_fee":0.005151999999999999,"poly_fee":0.00648,"total_fee":0.011631999999999998,"worst_pnl":-0.031632000000000104,"best_pnl":-0.03163200000000005,"mid_pnl":null,"net_return":-0.031011764705882454,"annualized":-1.0290267379679177,"max_contracts":223.84,"total_gain":-7.080506880000024,"poly_volume":118676.91601899911,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will XRP trimmed mean be above $1.60 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n1.60, then the market resolves to Yes.","kalshi_yes_label":"Above $1.60","kalshi_no_label":"Above $1.60","poly_question":"Will XRP reach $1.60 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMAXMON-XRP-26MAY31-150","kalshi_strike":1.5,"poly_slug":"will-xrp-reach-1pt6-in-may-2026","poly_strike":1.6,"direction":"Above","basis_pct":-0.06666666666666672,"basis_favorable":false,"best_side":"NO+YES","kalshi_price":0.03,"kalshi_size":5607.11,"poly_price":0.1,"poly_size":327.55,"combined_cost":0.13,"kalshi_fee":0.002037,"poly_fee":0.00648,"total_fee":0.008517,"worst_pnl":-0.138517,"best_pnl":0.861483,"mid_pnl":-0.138517,"net_return":-1.0655153846153846,"annualized":null,"max_contracts":327.55,"total_gain":-45.37124335,"poly_volume":118676.91601899911,"days_to_expiry":null,"status":"BAD BASIS","kalshi_title":"Will XRP trimmed mean be above $1.50 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n1.50, then the market resolves to Yes.","kalshi_yes_label":"Above $1.50","kalshi_no_label":"Above $1.50","poly_question":"Will XRP reach $1.60 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for XRP/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the XRP/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/XRP-logo.png"},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-130","kalshi_strike":1.3,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $1.30 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1.30, then the market resolves to Yes.","kalshi_yes_label":"Below $1.30","kalshi_no_label":"Below $1.30","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-120","kalshi_strike":1.2,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $1.20 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1.20, then the market resolves to Yes.","kalshi_yes_label":"Below $1.20","kalshi_no_label":"Below $1.20","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-110","kalshi_strike":1.1,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $1.10 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1.10, then the market resolves to Yes.","kalshi_yes_label":"Below $1.10","kalshi_no_label":"Below $1.10","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-100","kalshi_strike":1.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $1.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $1.00, then the market resolves to Yes.","kalshi_yes_label":"Below $1.00","kalshi_no_label":"Below $1.00","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-090","kalshi_strike":0.9,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $0.90 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.90, then the market resolves to Yes.","kalshi_yes_label":"Below $0.90","kalshi_no_label":"Below $0.90","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-080","kalshi_strike":0.8,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $0.80 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.80, then the market resolves to Yes.","kalshi_yes_label":"Below $0.80","kalshi_no_label":"Below $0.80","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-070","kalshi_strike":0.7,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $0.70 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.70, then the market resolves to Yes.","kalshi_yes_label":"Below $0.70","kalshi_no_label":"Below $0.70","poly_question":null,"poly_description":null,"image":null},{"asset":"XRP","kalshi_ticker":"KXXRPMINMON-XRP-26MAY31-060","kalshi_strike":0.6,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will XRP trimmed mean be below $0.60 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of XRP after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.60, then the market resolves to Yes.","kalshi_yes_label":"Below $0.60","kalshi_no_label":"Below $0.60","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMAXMON-ZEC-26MAY31-43000","kalshi_strike":430.0,"poly_slug":null,"poly_strike":null,"direction":"Above","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be above $430.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n430.00, then the market resolves to Yes.","kalshi_yes_label":"Above $430.00","kalshi_no_label":"Above $430.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-35000","kalshi_strike":350.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $350.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $350.00, then the market resolves to Yes.","kalshi_yes_label":"Below $350.00","kalshi_no_label":"Below $350.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-34000","kalshi_strike":340.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $340.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $340.00, then the market resolves to Yes.","kalshi_yes_label":"Below $340.00","kalshi_no_label":"Below $340.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-33000","kalshi_strike":330.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $330.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $330.00, then the market resolves to Yes.","kalshi_yes_label":"Below $330.00","kalshi_no_label":"Below $330.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-32000","kalshi_strike":320.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $320.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $320.00, then the market resolves to Yes.","kalshi_yes_label":"Below $320.00","kalshi_no_label":"Below $320.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-31000","kalshi_strike":310.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $310.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $310.00, then the market resolves to Yes.","kalshi_yes_label":"Below $310.00","kalshi_no_label":"Below $310.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-30000","kalshi_strike":300.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $300.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $300.00, then the market resolves to Yes.","kalshi_yes_label":"Below $300.00","kalshi_no_label":"Below $300.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-29000","kalshi_strike":290.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $290.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $290.00, then the market resolves to Yes.","kalshi_yes_label":"Below $290.00","kalshi_no_label":"Below $290.00","poly_question":null,"poly_description":null,"image":null},{"asset":"ZEC","kalshi_ticker":"KXZECMINMON-ZEC-26MAY31-28000","kalshi_strike":280.0,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will ZEC trimmed mean be below $280.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of ZEC after issuance and through 11:59 PM ET on May 31, 2026 is ever below $280.00, then the market resolves to Yes.","kalshi_yes_label":"Below $280.00","kalshi_no_label":"Below $280.00","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-018","kalshi_strike":0.18,"poly_slug":"will-dogecoin-reach-0pt2-in-may-2026","poly_strike":0.2,"direction":"Above","basis_pct":-0.11111111111111122,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.03,"kalshi_size":600.0,"poly_price":0.986,"poly_size":20.0,"combined_cost":1.016,"kalshi_fee":0.002037,"poly_fee":0.000993888000000001,"total_fee":0.003030888000000001,"worst_pnl":-0.019030887999999985,"best_pnl":0.980969112,"mid_pnl":0.980969112,"net_return":-0.01873118897637794,"annualized":-0.6215349069434498,"max_contracts":20.0,"total_gain":-0.3806177599999997,"poly_volume":289627.0712019999,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be above $0.18 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.18, then the market resolves to Yes.","kalshi_yes_label":"Above $0.18","kalshi_no_label":"Above $0.18","poly_question":"Will Dogecoin reach $0.20 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT High prices availab\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-017","kalshi_strike":0.17,"poly_slug":"will-dogecoin-reach-0pt15-in-may-2026","poly_strike":0.15,"direction":"Above","basis_pct":0.11764705882352951,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":1104.8,"poly_price":0.043,"poly_size":898.82,"combined_cost":1.043,"kalshi_fee":0.0,"poly_fee":0.002962871999999999,"total_fee":0.002962871999999999,"worst_pnl":-0.045962872000000043,"best_pnl":0.954037128,"mid_pnl":0.954037128,"net_return":-0.04406795014381596,"annualized":-1.4622547093175295,"max_contracts":898.82,"total_gain":-41.31234861104004,"poly_volume":40470.594027,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be above $0.17 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.17, then the market resolves to Yes.","kalshi_yes_label":"Above $0.17","kalshi_no_label":"Above $0.17","poly_question":"Will Dogecoin reach $0.15 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT High prices availab\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-016","kalshi_strike":0.16,"poly_slug":"will-dogecoin-reach-0pt15-in-may-2026","poly_strike":0.15,"direction":"Above","basis_pct":0.06250000000000006,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":1988.09,"poly_price":0.043,"poly_size":898.82,"combined_cost":1.043,"kalshi_fee":0.0,"poly_fee":0.002962871999999999,"total_fee":0.002962871999999999,"worst_pnl":-0.045962872000000043,"best_pnl":0.954037128,"mid_pnl":0.954037128,"net_return":-0.04406795014381596,"annualized":-1.4622547093175295,"max_contracts":898.82,"total_gain":-41.31234861104004,"poly_volume":40470.594027,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be above $0.16 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.16, then the market resolves to Yes.","kalshi_yes_label":"Above $0.16","kalshi_no_label":"Above $0.16","poly_question":"Will Dogecoin reach $0.15 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT High prices availab\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-015","kalshi_strike":0.15,"poly_slug":"will-dogecoin-reach-0pt15-in-may-2026","poly_strike":0.15,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.05,"kalshi_size":1.0,"poly_price":0.989,"poly_size":325.0,"combined_cost":1.039,"kalshi_fee":0.0033250000000000003,"poly_fee":0.0007832880000000006,"total_fee":0.004108288000000001,"worst_pnl":-0.043108288000000106,"best_pnl":-0.043108287999999995,"mid_pnl":null,"net_return":-0.04149017131857566,"annualized":-1.376719321025465,"max_contracts":1.0,"total_gain":-0.043108288000000106,"poly_volume":40470.594027,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be above $0.15 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.15, then the market resolves to Yes.","kalshi_yes_label":"Above $0.15","kalshi_no_label":"Above $0.15","poly_question":"Will Dogecoin reach $0.15 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT High prices availab\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-014","kalshi_strike":0.14,"poly_slug":"will-dogecoin-reach-0pt15-in-may-2026","poly_strike":0.15,"direction":"Above","basis_pct":-0.07142857142857129,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.05,"kalshi_size":1.0,"poly_price":0.989,"poly_size":325.0,"combined_cost":1.039,"kalshi_fee":0.0033250000000000003,"poly_fee":0.0007832880000000006,"total_fee":0.004108288000000001,"worst_pnl":-0.043108288000000106,"best_pnl":0.9568917119999999,"mid_pnl":0.9568917119999999,"net_return":-0.04149017131857566,"annualized":-1.376719321025465,"max_contracts":1.0,"total_gain":-0.043108288000000106,"poly_volume":40470.594027,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be above $0.14 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.14, then the market resolves to Yes.","kalshi_yes_label":"Above $0.14","kalshi_no_label":"Above $0.14","poly_question":"Will Dogecoin reach $0.15 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT High prices availab\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-013","kalshi_strike":0.13,"poly_slug":null,"poly_strike":null,"direction":"Above","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be above $0.13 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.13, then the market resolves to Yes.","kalshi_yes_label":"Above $0.13","kalshi_no_label":"Above $0.13","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMAXMON-DOGE-26MAY31-012","kalshi_strike":0.12,"poly_slug":null,"poly_strike":null,"direction":"Above","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be above $0.12 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n0.12, then the market resolves to Yes.","kalshi_yes_label":"Above $0.12","kalshi_no_label":"Above $0.12","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-010","kalshi_strike":0.1,"poly_slug":"will-dogecoin-dip-to-0pt1-in-may-2026","poly_strike":0.1,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.89,"kalshi_size":57.22,"poly_price":0.64,"poly_size":40.0,"combined_cost":1.53,"kalshi_fee":0.006853,"poly_fee":0.016588799999999997,"total_fee":0.0234418,"worst_pnl":-0.5534418000000001,"best_pnl":-0.5534418,"mid_pnl":null,"net_return":-0.3617266666666667,"annualized":-12.002748484848485,"max_contracts":40.0,"total_gain":-22.137672000000002,"poly_volume":364.832085,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be below $0.10 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.10, then the market resolves to Yes.","kalshi_yes_label":"Below $0.10","kalshi_no_label":"Below $0.10","poly_question":"Will Dogecoin dip to $0.10 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT Low prices available a\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-009","kalshi_strike":0.09,"poly_slug":"will-dogecoin-dip-to-0pt1-in-may-2026","poly_strike":0.1,"direction":"Below","basis_pct":0.10000000000000009,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.77,"kalshi_size":430.62,"poly_price":0.88,"poly_size":5.0,"combined_cost":1.65,"kalshi_fee":0.012397,"poly_fee":0.0076032,"total_fee":0.0200002,"worst_pnl":-0.6700002,"best_pnl":0.32999979999999995,"mid_pnl":0.32999979999999995,"net_return":-0.4060607272727273,"annualized":-13.473833223140495,"max_contracts":5.0,"total_gain":-3.3500010000000002,"poly_volume":364.832085,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be below $0.09 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.09, then the market resolves to Yes.","kalshi_yes_label":"Below $0.09","kalshi_no_label":"Below $0.09","poly_question":"Will Dogecoin dip to $0.10 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT Low prices available a\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-008","kalshi_strike":0.08,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be below $0.08 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.08, then the market resolves to Yes.","kalshi_yes_label":"Below $0.08","kalshi_no_label":"Below $0.08","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-007","kalshi_strike":0.07,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be below $0.07 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.07, then the market resolves to Yes.","kalshi_yes_label":"Below $0.07","kalshi_no_label":"Below $0.07","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-006","kalshi_strike":0.06,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be below $0.06 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.06, then the market resolves to Yes.","kalshi_yes_label":"Below $0.06","kalshi_no_label":"Below $0.06","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-005","kalshi_strike":0.05,"poly_slug":"will-dogecoin-dip-to-0pt05-in-may-2026","poly_strike":0.05,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":2040.0,"poly_price":0.002,"poly_size":1895.17,"combined_cost":1.002,"kalshi_fee":0.0,"poly_fee":0.000143712,"total_fee":0.000143712,"worst_pnl":-0.002143712,"best_pnl":-0.0021437119999999643,"mid_pnl":null,"net_return":-0.0021394331337325346,"annualized":-0.07099028125567046,"max_contracts":1895.17,"total_gain":-4.06269867104,"poly_volume":14550.107593000006,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will DOGE trimmed mean be below $0.05 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.05, then the market resolves to Yes.","kalshi_yes_label":"Below $0.05","kalshi_no_label":"Below $0.05","poly_question":"Will Dogecoin dip to $0.05 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for DOGE/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last), has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the DOGE/USDT Low prices available a\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/dogecoin-9ae840dfa3.png"},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-004","kalshi_strike":0.04,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be below $0.04 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.04, then the market resolves to Yes.","kalshi_yes_label":"Below $0.04","kalshi_no_label":"Below $0.04","poly_question":null,"poly_description":null,"image":null},{"asset":"DOGE","kalshi_ticker":"KXDOGEMINMON-DOGE-26MAY31-003","kalshi_strike":0.03,"poly_slug":null,"poly_strike":null,"direction":"Below","basis_pct":null,"basis_favorable":null,"best_side":null,"kalshi_price":null,"kalshi_size":null,"poly_price":null,"poly_size":null,"combined_cost":null,"kalshi_fee":null,"poly_fee":null,"total_fee":null,"worst_pnl":null,"best_pnl":null,"mid_pnl":null,"net_return":null,"annualized":null,"max_contracts":null,"total_gain":null,"poly_volume":null,"days_to_expiry":null,"status":"NO PAIR","kalshi_title":"Will DOGE trimmed mean be below $0.03 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of DOGE after issuance and through 11:59 PM ET on May 31, 2026 is ever below $0.03, then the market resolves to Yes.","kalshi_yes_label":"Below $0.03","kalshi_no_label":"Below $0.03","poly_question":null,"poly_description":null,"image":null},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-72000","kalshi_strike":720.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":0.027777777777777776,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":240.01,"poly_price":0.5,"poly_size":300.0,"combined_cost":1.49,"kalshi_fee":0.0006930000000000006,"poly_fee":0.018,"total_fee":0.018692999999999998,"worst_pnl":-0.5086930000000001,"best_pnl":0.491307,"mid_pnl":0.491307,"net_return":-0.34140469798657724,"annualized":-11.328428615009154,"max_contracts":240.01,"total_gain":-122.09140693,"poly_volume":2613.531754,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $720.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n720.00, then the market resolves to Yes.","kalshi_yes_label":"Above $720.00","kalshi_no_label":"Above $720.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-71000","kalshi_strike":710.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":0.014084507042253521,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.86,"kalshi_size":453.01,"poly_price":0.5,"poly_size":300.0,"combined_cost":1.3599999999999999,"kalshi_fee":0.008428000000000001,"poly_fee":0.018,"total_fee":0.026428,"worst_pnl":-0.386428,"best_pnl":0.613572,"mid_pnl":0.613572,"net_return":-0.2841382352941177,"annualized":-9.428223262032086,"max_contracts":300.0,"total_gain":-115.9284,"poly_volume":2613.531754,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $710.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n710.00, then the market resolves to Yes.","kalshi_yes_label":"Above $710.00","kalshi_no_label":"Above $710.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-70000","kalshi_strike":700.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":0.0,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.27,"kalshi_size":1.0,"poly_price":0.73,"poly_size":7.64,"combined_cost":1.0,"kalshi_fee":0.013797000000000002,"poly_fee":0.0141912,"total_fee":0.0279882,"worst_pnl":-0.02798820000000002,"best_pnl":-0.027988199999999908,"mid_pnl":null,"net_return":-0.02798820000000002,"annualized":-0.9286993636363642,"max_contracts":1.0,"total_gain":-0.02798820000000002,"poly_volume":2613.531754,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $700.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n700.00, then the market resolves to Yes.","kalshi_yes_label":"Above $700.00","kalshi_no_label":"Above $700.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-69000","kalshi_strike":690.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":-0.014492753623188406,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.76,"kalshi_size":2620.02,"poly_price":0.73,"poly_size":7.64,"combined_cost":1.49,"kalshi_fee":0.012768,"poly_fee":0.0141912,"total_fee":0.0269592,"worst_pnl":-0.5169592000000001,"best_pnl":0.4830408,"mid_pnl":0.4830408,"net_return":-0.34695248322147654,"annualized":-11.512514215985357,"max_contracts":7.64,"total_gain":-3.9495682880000005,"poly_volume":2613.531754,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $690.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n690.00, then the market resolves to Yes.","kalshi_yes_label":"Above $690.00","kalshi_no_label":"Above $690.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-68000","kalshi_strike":680.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":-0.029411764705882353,"basis_favorable":false,"best_side":"NO+YES","kalshi_price":0.01,"kalshi_size":12.0,"poly_price":0.5,"poly_size":300.0,"combined_cost":0.51,"kalshi_fee":0.0006930000000000001,"poly_fee":0.018,"total_fee":0.018692999999999998,"worst_pnl":-0.528693,"best_pnl":0.471307,"mid_pnl":-0.528693,"net_return":-1.0366529411764704,"annualized":null,"max_contracts":12.0,"total_gain":-6.344315999999999,"poly_volume":2613.531754,"days_to_expiry":null,"status":"BAD BASIS","kalshi_title":"Will BNB trimmed mean be above $680.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n680.00, then the market resolves to Yes.","kalshi_yes_label":"Above $680.00","kalshi_no_label":"Above $680.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-67000","kalshi_strike":670.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":-0.04477611940298507,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.96,"kalshi_size":144.0,"poly_price":0.73,"poly_size":7.64,"combined_cost":1.69,"kalshi_fee":0.002688000000000003,"poly_fee":0.0141912,"total_fee":0.016879200000000004,"worst_pnl":-0.7068791999999999,"best_pnl":0.2931208,"mid_pnl":0.2931208,"net_return":-0.41827171597633134,"annualized":null,"max_contracts":7.64,"total_gain":-5.400557087999999,"poly_volume":2613.531754,"days_to_expiry":null,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $670.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n670.00, then the market resolves to Yes.","kalshi_yes_label":"Above $670.00","kalshi_no_label":"Above $670.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-66000","kalshi_strike":660.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":-0.06060606060606061,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.99,"kalshi_size":68.34,"poly_price":0.73,"poly_size":7.64,"combined_cost":1.72,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0141912,"total_fee":0.0148842,"worst_pnl":-0.7348842,"best_pnl":0.2651158,"mid_pnl":0.2651158,"net_return":-0.4272582558139535,"annualized":null,"max_contracts":7.64,"total_gain":-5.614515288,"poly_volume":2613.531754,"days_to_expiry":null,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $660.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n660.00, then the market resolves to Yes.","kalshi_yes_label":"Above $660.00","kalshi_no_label":"Above $660.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMAXMON-BNB-26MAY31-65000","kalshi_strike":650.0,"poly_slug":"will-bnb-reach-700-in-may","poly_strike":700.0,"direction":"Above","basis_pct":-0.07692307692307693,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.96,"kalshi_size":22.0,"poly_price":0.73,"poly_size":7.64,"combined_cost":1.69,"kalshi_fee":0.002688000000000003,"poly_fee":0.0141912,"total_fee":0.016879200000000004,"worst_pnl":-0.7068791999999999,"best_pnl":0.2931208,"mid_pnl":0.2931208,"net_return":-0.41827171597633134,"annualized":null,"max_contracts":7.64,"total_gain":-5.400557087999999,"poly_volume":2613.531754,"days_to_expiry":null,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be above $650.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever above $\n650.00, then the market resolves to Yes.","kalshi_yes_label":"Above $650.00","kalshi_no_label":"Above $650.00","poly_question":"Will BNB reach $700 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final High price equal to or greater than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT High prices available\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-60000","kalshi_strike":600.0,"poly_slug":"will-bnb-dip-to-600-in-may","poly_strike":600.0,"direction":"Below","basis_pct":0.0,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.23,"kalshi_size":1535.09,"poly_price":0.8,"poly_size":5.0,"combined_cost":1.03,"kalshi_fee":0.012397000000000004,"poly_fee":0.011519999999999997,"total_fee":0.023917,"worst_pnl":-0.05391700000000005,"best_pnl":-0.05391699999999999,"mid_pnl":null,"net_return":-0.05234660194174762,"annualized":-1.7369554280670798,"max_contracts":5.0,"total_gain":-0.26958500000000024,"poly_volume":603.6073000000001,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $600.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $600.00, then the market resolves to Yes.","kalshi_yes_label":"Below $600.00","kalshi_no_label":"Below $600.00","poly_question":"Will BNB dip to $600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-59000","kalshi_strike":590.0,"poly_slug":"will-bnb-dip-to-600-in-may","poly_strike":600.0,"direction":"Below","basis_pct":0.016666666666666666,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":21.97,"poly_price":0.62,"poly_size":34.99,"combined_cost":1.6099999999999999,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0169632,"total_fee":0.0176562,"worst_pnl":-0.6276562000000001,"best_pnl":0.3723438,"mid_pnl":0.3723438,"net_return":-0.38984857142857154,"annualized":-12.935884415584418,"max_contracts":21.97,"total_gain":-13.789606714000001,"poly_volume":603.6073000000001,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $590.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $590.00, then the market resolves to Yes.","kalshi_yes_label":"Below $590.00","kalshi_no_label":"Below $590.00","poly_question":"Will BNB dip to $600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-58000","kalshi_strike":580.0,"poly_slug":"will-bnb-dip-to-600-in-may","poly_strike":600.0,"direction":"Below","basis_pct":0.03333333333333333,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":1.0,"kalshi_size":130.0,"poly_price":0.62,"poly_size":34.99,"combined_cost":1.62,"kalshi_fee":0.0,"poly_fee":0.0169632,"total_fee":0.0169632,"worst_pnl":-0.6369632000000001,"best_pnl":0.3630368,"mid_pnl":0.3630368,"net_return":-0.3931871604938272,"annualized":-13.046664870931538,"max_contracts":34.99,"total_gain":-22.287342368000004,"poly_volume":603.6073000000001,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $580.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $580.00, then the market resolves to Yes.","kalshi_yes_label":"Below $580.00","kalshi_no_label":"Below $580.00","poly_question":"Will BNB dip to $600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-57000","kalshi_strike":570.0,"poly_slug":"will-bnb-dip-to-600-in-may","poly_strike":600.0,"direction":"Below","basis_pct":0.05,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":38.94,"poly_price":0.62,"poly_size":34.99,"combined_cost":1.6099999999999999,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0169632,"total_fee":0.0176562,"worst_pnl":-0.6276562000000001,"best_pnl":0.3723438,"mid_pnl":0.3723438,"net_return":-0.38984857142857154,"annualized":-12.935884415584418,"max_contracts":34.99,"total_gain":-21.961690438000005,"poly_volume":603.6073000000001,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $570.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $570.00, then the market resolves to Yes.","kalshi_yes_label":"Below $570.00","kalshi_no_label":"Below $570.00","poly_question":"Will BNB dip to $600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-56000","kalshi_strike":560.0,"poly_slug":"will-bnb-dip-to-600-in-may","poly_strike":600.0,"direction":"Below","basis_pct":0.06666666666666667,"basis_favorable":true,"best_side":"NO+YES","kalshi_price":0.99,"kalshi_size":392.12,"poly_price":0.62,"poly_size":34.99,"combined_cost":1.6099999999999999,"kalshi_fee":0.0006930000000000006,"poly_fee":0.0169632,"total_fee":0.0176562,"worst_pnl":-0.6276562000000001,"best_pnl":0.3723438,"mid_pnl":0.3723438,"net_return":-0.38984857142857154,"annualized":-12.935884415584418,"max_contracts":34.99,"total_gain":-21.961690438000005,"poly_volume":603.6073000000001,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $560.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $560.00, then the market resolves to Yes.","kalshi_yes_label":"Below $560.00","kalshi_no_label":"Below $560.00","poly_question":"Will BNB dip to $600 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-55000","kalshi_strike":550.0,"poly_slug":"will-bnb-dip-to-500-in-may","poly_strike":500.0,"direction":"Below","basis_pct":-0.1,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.45,"kalshi_size":13.44,"poly_price":0.97,"poly_size":25.0,"combined_cost":1.42,"kalshi_fee":0.017325000000000007,"poly_fee":0.002095200000000002,"total_fee":0.01942020000000001,"worst_pnl":-0.4394202,"best_pnl":0.5605798000000001,"mid_pnl":0.5605798000000001,"net_return":-0.30945084507042253,"annualized":-10.268141677336747,"max_contracts":13.44,"total_gain":-5.905807488,"poly_volume":587.571016,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $550.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $550.00, then the market resolves to Yes.","kalshi_yes_label":"Below $550.00","kalshi_no_label":"Below $550.00","poly_question":"Will BNB dip to $500 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-54000","kalshi_strike":540.0,"poly_slug":"will-bnb-dip-to-500-in-may","poly_strike":500.0,"direction":"Below","basis_pct":-0.08,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.35,"kalshi_size":677.51,"poly_price":0.97,"poly_size":25.0,"combined_cost":1.3199999999999998,"kalshi_fee":0.015925,"poly_fee":0.002095200000000002,"total_fee":0.018020200000000004,"worst_pnl":-0.3380202,"best_pnl":0.6619798000000001,"mid_pnl":0.6619798000000001,"net_return":-0.2560759090909091,"annualized":-8.497064256198348,"max_contracts":25.0,"total_gain":-8.450505,"poly_volume":587.571016,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $540.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $540.00, then the market resolves to Yes.","kalshi_yes_label":"Below $540.00","kalshi_no_label":"Below $540.00","poly_question":"Will BNB dip to $500 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"},{"asset":"BNB","kalshi_ticker":"KXBNBMINMON-BNB-26MAY31-53000","kalshi_strike":530.0,"poly_slug":"will-bnb-dip-to-500-in-may","poly_strike":500.0,"direction":"Below","basis_pct":-0.06,"basis_favorable":true,"best_side":"YES+NO","kalshi_price":0.1,"kalshi_size":963.7,"poly_price":0.97,"poly_size":25.0,"combined_cost":1.07,"kalshi_fee":0.006300000000000001,"poly_fee":0.002095200000000002,"total_fee":0.008395200000000002,"worst_pnl":-0.07839519999999998,"best_pnl":0.9216048000000001,"mid_pnl":0.9216048000000001,"net_return":-0.07326654205607475,"annualized":-2.4311170773152075,"max_contracts":25.0,"total_gain":-1.9598799999999996,"poly_volume":587.571016,"days_to_expiry":11,"status":"NO ARB","kalshi_title":"Will BNB trimmed mean be below $530.00 by 11:59 PM ET on May 31, 2026?","kalshi_rules":"If the price of BNB after issuance and through 11:59 PM ET on May 31, 2026 is ever below $530.00, then the market resolves to Yes.","kalshi_yes_label":"Below $530.00","kalshi_no_label":"Below $530.00","poly_question":"Will BNB dip to $500 in May?","poly_description":"This market will immediately resolve to \"Yes\" if any Binance 1 minute candle for BNB/USDT during the month specified in the title (from 00:00 AM ET on the first day to 11:59 PM ET on the last) has a final Low price equal to or lower than the price specified in the title. Otherwise, this market will resolve to \"No.\"\n\nThe resolution source for this market is Binance, specifically the BNB/USDT Low prices available at h\u2026","image":"https://polymarket-upload.s3.us-east-2.amazonaws.com/bnb-all-time-high-by-december-31-MRsmG1FSYuSN.png"}],"summary":{"total":118,"fetch_ms":2739,"ARB":4,"NO ARB":71,"BAD BASIS":5,"LOW SIZE":0,"NO DATA":8,"NO PAIR":30},"settings":{"kalshi_fee_rate":0.07,"poly_fee_rate":0.072,"min_net_return":0.002,"min_poly_volume":100.0,"min_contracts":1.0},"generated_at":"2026-05-21 21:59:28"} diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..f187d5604 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,81 @@ + + + + + +Arb Scanner · Kalshi × Polymarket + + + + + + +
+ +
+
+ +
+

Arb Scanner

+ Kalshi Ã— Polymarket · crypto · snapshot +
+
+ + +
+
+
+
loading…
+ +
+
+ + + +
+ + + +
+ +
+
+ + + + + +
+ + +
+ +
+ + + +
+ +
+ + + + + diff --git a/docs/style.css b/docs/style.css new file mode 100644 index 000000000..2191fb180 --- /dev/null +++ b/docs/style.css @@ -0,0 +1,378 @@ +:root { + --bg: #0a0c14; --bg2: #0e1120; --panel: rgba(22,26,42,.72); + --panel-solid: #161a2a; --line: rgba(255,255,255,.07); + --line2: rgba(255,255,255,.12); + --txt: #eef1f8; --dim: #9aa3bd; --faint: #6b7290; + --accent: #6c8cff; --accent2: #b06cff; + --good: #2fe39b; --good-d: #0c2c22; --warn: #ffc24b; --warn-d: #2e2410; + --bad: #ff647c; --bad-d: #2c1420; --info: #4cc9f0; + --r: 14px; --shadow: 0 14px 40px -18px rgba(0,0,0,.7); +} +* { box-sizing: border-box; margin: 0; padding: 0; } +/* The HTML `hidden` attribute must always win, even over display:grid/flex. */ +[hidden] { display: none !important; } +html { scroll-behavior: smooth; } +body { + background: var(--bg); color: var(--txt); min-height: 100vh; + font: 14px/1.5 "Inter", -apple-system, BlinkMacSystemFont, sans-serif; + -webkit-font-smoothing: antialiased; padding-bottom: 80px; +} +.mono { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; } + +/* ambient gradient wash */ +.aurora { + position: fixed; inset: 0; z-index: -1; pointer-events: none; + background: + radial-gradient(60vw 50vh at 12% -5%, rgba(108,140,255,.20), transparent 60%), + radial-gradient(55vw 45vh at 95% 0%, rgba(176,108,255,.16), transparent 55%), + radial-gradient(50vw 50vh at 60% 110%, rgba(47,227,155,.10), transparent 60%), + var(--bg); +} + +/* ---------- header ---------- */ +header { + display: flex; justify-content: space-between; align-items: center; + padding: 18px 26px; position: sticky; top: 0; z-index: 20; + background: linear-gradient(180deg, rgba(10,12,20,.92), rgba(10,12,20,.6)); + backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); +} +.brand { display: flex; align-items: center; gap: 14px; } +.logo { + width: 42px; height: 42px; display: grid; place-items: center; + font-size: 20px; border-radius: 12px; color: #fff; + background: linear-gradient(135deg, var(--accent), var(--accent2)); + box-shadow: 0 8px 24px -8px var(--accent); +} +h1 { font-size: 19px; font-weight: 800; letter-spacing: -.02em; } +.brand .sub { color: var(--dim); font-size: 12px; } +.tabs { display: flex; gap: 4px; margin-left: 18px; padding: 4px; + background: var(--panel); border: 1px solid var(--line2); border-radius: 12px; } +.tabs button { background: transparent; color: var(--dim); font-size: 13px; + padding: 7px 16px; border-radius: 9px; display: flex; align-items: center; gap: 6px; } +.tabs button.on { color: #fff; + background: linear-gradient(135deg, var(--accent), var(--accent2)); + box-shadow: 0 6px 18px -8px var(--accent); } +.tabs .spec { font-size: 9px; font-weight: 800; letter-spacing: .05em; + padding: 1px 5px; border-radius: 5px; background: var(--warn-d); + color: var(--warn); text-transform: uppercase; } +.tabs button.on .spec { background: rgba(255,255,255,.2); color: #fff; } + +.hbanner { display: flex; gap: 14px; align-items: center; margin: 18px 26px 0; + padding: 14px 18px; border-radius: var(--r); + background: linear-gradient(135deg, rgba(255,194,75,.12), var(--panel)); + border: 1px solid rgba(255,194,75,.3); } +.hb-ico { font-size: 22px; color: var(--warn); } +.hb-txt { font-size: 13px; color: var(--dim); line-height: 1.5; } +.hb-txt b { color: var(--warn); } +.hb-div { font-weight: 700; font-family: "JetBrains Mono", monospace; + color: var(--txt); padding: 1px 8px; border-radius: 6px; + background: rgba(255,255,255,.06); } +.hb-div.hot { color: var(--bad); background: var(--bad-d); } +.actions { display: flex; align-items: center; gap: 12px; } +.live { + display: flex; align-items: center; gap: 7px; color: var(--dim); + font-size: 12px; padding: 7px 12px; border: 1px solid var(--line); + border-radius: 999px; background: var(--panel); +} +.live .dot { + width: 8px; height: 8px; border-radius: 50%; background: var(--good); + box-shadow: 0 0 0 0 rgba(47,227,155,.6); animation: pulse 2s infinite; +} +@keyframes pulse { + 0% { box-shadow: 0 0 0 0 rgba(47,227,155,.55); } + 70% { box-shadow: 0 0 0 7px rgba(47,227,155,0); } + 100% { box-shadow: 0 0 0 0 rgba(47,227,155,0); } +} +.auto { display: flex; align-items: center; gap: 7px; color: var(--dim); + font-size: 12px; user-select: none; cursor: pointer; } +.auto input { accent-color: var(--accent); } +button { + font: inherit; font-weight: 600; cursor: pointer; border: 0; + border-radius: 10px; padding: 9px 16px; transition: .16s; +} +.primary { + color: #fff; background: linear-gradient(135deg, var(--accent), var(--accent2)); + display: inline-flex; align-items: center; gap: 8px; + box-shadow: 0 8px 22px -10px var(--accent); +} +.primary:hover { transform: translateY(-1px); filter: brightness(1.08); } +.ghost { color: var(--txt); background: var(--panel); border: 1px solid var(--line2); } +.ghost:hover { border-color: var(--accent); color: #fff; } +button:disabled { opacity: .55; cursor: default; transform: none; } +.bspin { width: 13px; height: 13px; border-radius: 50%; display: none; + border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; + animation: spin .7s linear infinite; } +.loading .bspin { display: inline-block; } +@keyframes spin { to { transform: rotate(360deg); } } + +/* ---------- summary ---------- */ +.summary { + display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 14px; padding: 22px 26px 6px; +} +.stat { + position: relative; overflow: hidden; border-radius: var(--r); + border: 1px solid var(--line); background: var(--panel); + backdrop-filter: blur(8px); padding: 16px 18px; +} +.stat::before { + content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; + background: var(--accent); +} +.stat.s-arb::before { background: var(--good); } +.stat.s-bad::before { background: var(--bad); } +.stat.s-warn::before { background: var(--warn); } +.stat .n { font-size: 28px; font-weight: 800; letter-spacing: -.02em; } +.stat.s-arb .n { color: var(--good); } +.stat.s-bad .n { color: var(--bad); } +.stat .l { color: var(--dim); font-size: 11px; font-weight: 600; + text-transform: uppercase; letter-spacing: .07em; margin-top: 2px; } +.stat .spark { color: var(--faint); font-size: 11px; margin-top: 6px; } + +/* ---------- hero ---------- */ +.hero { padding: 18px 26px 0; } +.hero-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; } +.hero-head h2 { font-size: 15px; font-weight: 700; } +.muted { color: var(--faint); font-size: 12px; } +.hero-cards { display: grid; gap: 14px; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); } +.hcard { + position: relative; overflow: hidden; border-radius: var(--r); + padding: 16px; border: 1px solid var(--line2); + background: linear-gradient(150deg, rgba(47,227,155,.10), var(--panel) 55%); + box-shadow: var(--shadow); transition: .18s; cursor: pointer; +} +.hcard:hover { transform: translateY(-3px); border-color: var(--good); } +.hcard .glow { + position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; + background: radial-gradient(circle, rgba(47,227,155,.4), transparent 70%); + filter: blur(6px); +} +.hcard .top { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; } +.hcard .thumb { width: 38px; height: 38px; border-radius: 10px; } +.hcard .q { font-weight: 600; font-size: 13px; line-height: 1.35; } +.hcard .ret { font-size: 30px; font-weight: 800; color: var(--good); + letter-spacing: -.02em; } +.hcard .meta { display: flex; gap: 16px; margin-top: 8px; color: var(--dim); + font-size: 12px; } +.hcard .meta b { color: var(--txt); font-weight: 600; } +.hcard.spec { background: linear-gradient(150deg, rgba(255,194,75,.12), + var(--panel) 55%); } +.hcard.spec:hover { border-color: var(--warn); } +.hcard.spec .glow { background: radial-gradient(circle, + rgba(255,194,75,.34), transparent 70%); } +.hcard.spec .ret { color: var(--warn); } +.warn-line { font-size: 11.5px; color: var(--warn); background: var(--warn-d); + border-radius: 7px; padding: 7px 10px; margin: 10px 0; } + +/* ---------- toolbar ---------- */ +.toolbar { + display: flex; align-items: center; gap: 12px; flex-wrap: wrap; + padding: 20px 26px 14px; +} +.search { position: relative; display: flex; align-items: center; } +.search svg { position: absolute; left: 12px; color: var(--faint); } +.search input { + background: var(--panel); border: 1px solid var(--line2); color: var(--txt); + border-radius: 999px; padding: 9px 16px 9px 34px; min-width: 250px; + font: inherit; outline: none; +} +.search input:focus { border-color: var(--accent); } +.chips { display: flex; gap: 7px; flex-wrap: wrap; } +.chips .ac { + display: flex; align-items: center; gap: 6px; padding: 6px 12px; + border-radius: 999px; border: 1px solid var(--line2); background: var(--panel); + color: var(--dim); font-size: 12px; font-weight: 600; cursor: pointer; + transition: .14s; +} +.chips .ac .blob { width: 8px; height: 8px; border-radius: 50%; } +.chips .ac.on { color: #fff; border-color: transparent; + background: rgba(255,255,255,.10); } +.seg { display: flex; background: var(--panel); border: 1px solid var(--line2); + border-radius: 999px; padding: 3px; } +.seg button { background: transparent; color: var(--dim); padding: 6px 13px; + border-radius: 999px; font-size: 12px; } +.seg button.on { color: #fff; + background: linear-gradient(135deg, var(--accent), var(--accent2)); } +.chk { display: flex; align-items: center; gap: 7px; color: var(--dim); + font-size: 12px; cursor: pointer; user-select: none; } +.chk input { accent-color: var(--accent); } +.toolbar .count { margin-left: auto; color: var(--faint); font-size: 12px; } + +/* ---------- table ---------- */ +main { padding: 0 26px; } +table { border-collapse: separate; border-spacing: 0; width: 100%; + font-variant-numeric: tabular-nums; } +thead th { + position: sticky; top: 79px; z-index: 5; background: var(--bg2); + color: var(--faint); font-size: 10.5px; font-weight: 700; + text-transform: uppercase; letter-spacing: .06em; text-align: right; + padding: 12px 12px; cursor: pointer; user-select: none; white-space: nowrap; + border-bottom: 1px solid var(--line2); +} +thead th:first-child, thead th.l { text-align: left; } +thead th:hover { color: var(--txt); } +thead th.sorted, thead th.asc { color: var(--accent); } +thead th.sorted::after { content: " ↓"; } +thead th.asc::after { content: " ↑"; } +tbody td { + padding: 11px 12px; text-align: right; white-space: nowrap; + border-bottom: 1px solid var(--line); } +tbody td.l { text-align: left; } +tbody tr.r { cursor: pointer; transition: background .12s; } +tbody tr.r:hover { background: rgba(255,255,255,.035); } +tbody tr.r.open { background: rgba(108,140,255,.07); } + +.mkt { display: flex; align-items: center; gap: 11px; max-width: 360px; } +.thumb, .badge { + width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0; + object-fit: cover; background: var(--panel-solid); +} +.badge { display: grid; place-items: center; font-weight: 800; font-size: 12px; + color: #fff; letter-spacing: -.02em; } +.mkt .info { min-width: 0; } +.mkt .qa { display: flex; align-items: center; gap: 7px; } +.mkt .q { font-weight: 600; font-size: 13px; overflow: hidden; + text-overflow: ellipsis; white-space: nowrap; max-width: 270px; } +.mkt .sub { color: var(--faint); font-size: 11px; margin-top: 1px; } +.achip { font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 6px; + letter-spacing: .02em; flex-shrink: 0; } +.dir { font-size: 10px; font-weight: 700; color: var(--dim); + border: 1px solid var(--line2); padding: 1px 6px; border-radius: 5px; } + +.pricebar { display: flex; flex-direction: column; gap: 3px; min-width: 110px; } +.pricebar .track { height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); + position: relative; overflow: hidden; } +.pricebar .fill { position: absolute; inset: 0 auto 0 0; border-radius: 3px; + background: linear-gradient(90deg, var(--accent), var(--accent2)); } +.pricebar .lbl { display: flex; justify-content: space-between; + font-size: 10px; color: var(--faint); } + +.num { font-weight: 600; } +.pos { color: var(--good); } .neg { color: var(--bad); } +.big { font-size: 15px; font-weight: 800; letter-spacing: -.02em; } +.dimv { color: var(--faint); } + +.pill { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; + border-radius: 999px; font-size: 11px; font-weight: 700; } +.pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; + background: currentColor; } +.pill.ARB { color: var(--good); background: var(--good-d); + box-shadow: 0 0 14px -3px rgba(47,227,155,.5); } +.pill.NOARB { color: var(--warn); background: var(--warn-d); } +.pill.BADBASIS { color: var(--bad); background: var(--bad-d); } +.pill.LOWSIZE { color: var(--info); background: rgba(76,201,240,.12); } +.pill.NODATA, .pill.NOPAIR { color: var(--faint); background: rgba(255,255,255,.05); } + +/* ---------- detail drawer ---------- */ +tr.detail td { padding: 0; border-bottom: 1px solid var(--line); } +.drawer { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 18px; + padding: 20px 22px; background: linear-gradient(180deg, + rgba(108,140,255,.06), transparent); animation: slide .22s ease; } +@keyframes slide { from { opacity: 0; transform: translateY(-6px); } } +.vcard { border: 1px solid var(--line); border-radius: 12px; padding: 16px; + background: var(--panel); } +.vcard h4 { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; + color: var(--dim); margin-bottom: 10px; display: flex; align-items: center; + gap: 8px; } +.vcard h4 .tag { font-size: 10px; padding: 2px 7px; border-radius: 5px; + color: #fff; font-weight: 700; } +.tag.k { background: #5b6cff; } .tag.p { background: #00c2a8; } +.vcard .title { font-weight: 600; font-size: 13px; line-height: 1.4; + margin-bottom: 10px; } +.vcard img.hero-img { width: 100%; max-height: 120px; object-fit: cover; + border-radius: 9px; margin-bottom: 10px; } +.vcard .desc { color: var(--dim); font-size: 12px; line-height: 1.55; + max-height: 130px; overflow: auto; } +.legs { display: flex; gap: 10px; margin-bottom: 12px; } +.leg { flex: 1; background: rgba(255,255,255,.04); border-radius: 9px; + padding: 9px 11px; } +.leg .k { color: var(--faint); font-size: 10px; text-transform: uppercase; + letter-spacing: .05em; } +.leg .v { font-weight: 700; font-size: 15px; margin-top: 2px; } +.kv { display: grid; grid-template-columns: 1fr auto; gap: 7px 14px; + font-size: 12px; } +.kv .k { color: var(--dim); } +.kv .v { font-weight: 600; text-align: right; } +.scen { display: flex; gap: 8px; margin: 12px 0 4px; } +.scen .b { flex: 1; text-align: center; border-radius: 9px; padding: 10px 6px; + background: rgba(255,255,255,.04); border: 1px solid var(--line); } +.scen .b .t { font-size: 10px; color: var(--faint); text-transform: uppercase; + letter-spacing: .05em; } +.scen .b .x { font-weight: 800; font-size: 15px; margin-top: 3px; } + +.empty { text-align: center; padding: 70px 20px; color: var(--faint); } +.empty-art { font-size: 40px; opacity: .4; margin-bottom: 10px; } + +/* ---------- modal / toast ---------- */ +.modal { position: fixed; inset: 0; z-index: 40; display: grid; + place-items: center; background: rgba(4,6,12,.7); backdrop-filter: blur(4px); } +.modal .card { width: 360px; background: var(--panel-solid); + border: 1px solid var(--line2); border-radius: 16px; padding: 24px; + box-shadow: var(--shadow); } +.modal h2 { font-size: 17px; } +.modal .hint { color: var(--dim); font-size: 12px; margin: 4px 0 16px; } +.modal label { display: flex; justify-content: space-between; align-items: center; + gap: 12px; margin: 10px 0; color: var(--dim); font-size: 13px; } +.modal input { width: 120px; background: var(--bg2); border: 1px solid var(--line2); + color: var(--txt); border-radius: 8px; padding: 7px 10px; font: inherit; } +.modal input:focus { outline: none; border-color: var(--accent); } +.modal .row { display: flex; gap: 10px; margin-top: 20px; } +.modal .row button { flex: 1; } +.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); + z-index: 50; background: var(--panel-solid); border: 1px solid var(--line2); + color: var(--txt); padding: 12px 20px; border-radius: 12px; + box-shadow: var(--shadow); font-size: 13px; font-weight: 500; + animation: slide .2s ease; } +.toast.err { border-color: var(--bad); color: var(--bad); } +.toast.ok { border-color: var(--good); } + +/* ---------- positions ---------- */ +.positions { padding: 22px 26px 60px; } +.stat.stat-lg { border-width: 1px 1px 1px 4px; + background: linear-gradient(135deg, rgba(108,140,255,.10), var(--panel)); } +.stat.stat-lg .n { font-size: 32px; } +.stat.stat-lg .l { color: var(--txt); } +.stat .stat-sub { font-size: 14px; font-weight: 700; margin-top: 2px; } +.postoolbar { display: flex; align-items: center; gap: 14px; margin: 16px 0; } +.posseg { display: flex; } +.pos-note { font-size: 12px; } +.vstack { display: flex; flex-direction: column; gap: 16px; } +.vcard .vc-head { display: flex; justify-content: space-between; + align-items: center; margin-bottom: 12px; } +.vc-tot { font-size: 18px; font-weight: 800; letter-spacing: -.02em; } +.vcard.setup { border-style: dashed; } +.vcard.setup p { color: var(--dim); font-size: 13px; margin: 8px 0; } +.vcard.setup pre { background: var(--bg2); border: 1px solid var(--line); + border-radius: 8px; padding: 12px; font: 12px/1.5 "JetBrains Mono", monospace; + color: var(--txt); overflow-x: auto; } +.vcard code { background: var(--bg2); padding: 1px 6px; border-radius: 5px; + font: 12px "JetBrains Mono", monospace; color: var(--accent); } +.ptbl { width: 100%; border-collapse: separate; border-spacing: 0; + font-variant-numeric: tabular-nums; } +.ptbl th { text-align: right; color: var(--faint); font-size: 10.5px; + font-weight: 700; text-transform: uppercase; letter-spacing: .05em; + padding: 8px 10px; border-bottom: 1px solid var(--line2); } +.ptbl th.l { text-align: left; } +.ptbl td { text-align: right; padding: 10px; border-bottom: 1px solid var(--line); + white-space: nowrap; } +.ptbl td.l { text-align: left; } +.ptbl tr:hover td { background: rgba(255,255,255,.03); } +.ptbl .mkt .q { max-width: 340px; } +.ptbl .pp { color: var(--faint); font-size: 11px; font-weight: 600; } +.sidetag { font-size: 10px; font-weight: 800; padding: 2px 8px; + border-radius: 6px; text-transform: uppercase; letter-spacing: .03em; } +.sidetag.yes, .sidetag.up { color: var(--good); background: var(--good-d); } +.sidetag.no, .sidetag.down { color: var(--bad); background: var(--bad-d); } +.okpill { font-size: 10px; font-weight: 700; color: var(--good); + background: var(--good-d); padding: 2px 8px; border-radius: 999px; + margin-left: 6px; } +.onepill { font-size: 10px; font-weight: 700; color: var(--warn); + background: var(--warn-d); padding: 2px 8px; border-radius: 999px; + margin-left: 6px; } +.leg2 { display: flex; align-items: center; gap: 8px; padding: 3px 0; + font-size: 12px; } +.leg2 .tag { width: 16px; height: 16px; display: grid; place-items: center; + font-size: 9px; padding: 0; } + +@media (max-width: 1100px) { .drawer { grid-template-columns: 1fr; } } diff --git a/scripts/gha_alerts.py b/scripts/gha_alerts.py index 0a41253e1..3de7c93e0 100644 --- a/scripts/gha_alerts.py +++ b/scripts/gha_alerts.py @@ -75,18 +75,39 @@ def pair_id(r): r.get("poly_slug") or "") +DOCS_DATA = ROOT / "docs" / "data" + + +def write_snapshot(name, payload): + DOCS_DATA.mkdir(parents=True, exist_ok=True) + path = DOCS_DATA / (name + ".json") + path.write_text(json.dumps(payload, separators=(",", ":")) + "\n") + print("snapshot: docs/data/%s.json (%d rows)" % + (name, len(payload.get("rows", []) or []))) + + def main(): + # 1) Monthly scan -> snapshot + alert source. + payload = scan.run_scan(force=True) + write_snapshot("scan", payload) + + # 2) Hourly snapshot for the public dashboard. Failure here doesn't + # block the monthly alert path. + try: + write_snapshot("hourly", scan.run_hourly(force=True)) + except Exception as e: + print("hourly snapshot failed: %s: %s" % (type(e).__name__, e)) + + # 3) Monthly alerts (SMS). No-op if SMS env vars aren't configured. webhook = os.environ.get("SMS_WEBHOOK", "").strip() phone = os.environ.get("SMS_PHONE", "").strip() carrier = os.environ.get("SMS_CARRIER", "").strip() if not (webhook and phone and carrier): - print("SMS env vars missing — exiting (set SMS_WEBHOOK/SMS_PHONE/SMS_CARRIER)") + print("SMS env vars missing — snapshots written, no texts sent") return - payload = scan.run_scan(force=True) settings = payload.get("settings", {}) min_ret = settings.get("min_net_return", 0) - current = {pair_id(r): r for r in payload.get("rows", []) if r.get("status") == "ARB" and (r.get("net_return") or 0) >= min_ret}