From 86ba2671561053537189b61d59df3bb05c0eec81 Mon Sep 17 00:00:00 2001 From: jaxperro Date: Thu, 16 Jul 2026 23:09:46 -0400 Subject: [PATCH] =?UTF-8?q?valuebot:=20paper=20V0=20=E2=80=94=20sub-2?= =?UTF-8?q?=C2=A2=20portfolio,=20honest=20FAK=20fills,=20chain=20settles,?= =?UTF-8?q?=20own=20Fly=20app=20(VALUE=20silo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- fly.value.toml | 14 ++ tests/test_valuebot.py | 118 +++++++++++ value/fly.Dockerfile | 9 + value/start.sh | 29 +++ value/valuebot.json | 1 + value/valuebot.py | 397 +++++++++++++++++++++++++++++++++++++ value/valuebot_fills.jsonl | 55 +++++ value/valuebot_state.json | 1 + 8 files changed, 624 insertions(+) create mode 100644 fly.value.toml create mode 100644 tests/test_valuebot.py create mode 100644 value/fly.Dockerfile create mode 100644 value/start.sh create mode 100644 value/valuebot.json create mode 100644 value/valuebot.py create mode 100644 value/valuebot_fills.jsonl create mode 100644 value/valuebot_state.json diff --git a/fly.value.toml b/fly.value.toml new file mode 100644 index 00000000..d19c76f9 --- /dev/null +++ b/fly.value.toml @@ -0,0 +1,14 @@ +# wwf-valuebot — the VALUE silo's own Fly app (value/PLAN.md). No http_service: +# nothing probes it, nothing auto-restarts it under a state surgery. +app = "wwf-valuebot" +primary_region = "arn" + +[build] + dockerfile = "value/fly.Dockerfile" + +[[restart]] + policy = "always" + +[[vm]] + size = "shared-cpu-1x" + memory = "256mb" diff --git a/tests/test_valuebot.py b/tests/test_valuebot.py new file mode 100644 index 00000000..39b85da3 --- /dev/null +++ b/tests/test_valuebot.py @@ -0,0 +1,118 @@ +"""Stub tests for the value paper bot (value/PLAN.md V0): honest FAK fill +model, event cap, cooldown, refund-aware chain settlement. No network. +Run: python3 tests/test_valuebot.py +""" +import os +import sys +import time + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), + "..", "value")) +import valuebot as vb # noqa: E402 + +vb.STATE = "/tmp/vb_test_state.json" +vb.FILLS = "/tmp/vb_test_fills.jsonl" +vb.FEED = "/tmp/vb_test_feed.json" + +fails = [] + + +def case(name): + def deco(fn): + ba0, op0 = vb.book_asks, vb.onchain_payouts + for f in (vb.STATE, vb.FILLS, vb.FEED): + if os.path.exists(f): + os.remove(f) + try: + fn() + print(f"PASS {name}") + except AssertionError as e: + print(f"FAIL {name}: {e}") + fails.append(name) + finally: + vb.book_asks, vb.onchain_payouts = ba0, op0 + return deco + + +def cand(tok, event="ev-2026-07-17", mark=0.01): + return {"token": tok, "outcome": "Yes", "mark": mark, "cond": "0xc" + tok, + "title": f"mkt {tok}", "end": "2026-01-01T00:00:00Z", # already past + "cat": "esports", "event": event, "tok_index": 0, "n_outcomes": 2} + + +@case("fill model: walks the ladder inside the band, honest miss when thin") +def t1(): + # $1 at 1c needs 100 shares; 60 at 0.010 + 50 at 0.0104 (inside 1.05 band) + sh, px, r = vb.model_fill([(0.010, 60), (0.0104, 50)], 1.0, 0.02) + assert r is None and abs(sh - (0.6/0.010 + 0.4/0.0104)) < 1e-6 + # thin: only $0.30 inside the band -> MISS + sh, px, r = vb.model_fill([(0.010, 30), (0.02, 1000)], 1.0, 0.02) + assert sh is None and "FAK no-match" in r, r + # best ask above the bucket -> not a candidate + sh, px, r = vb.model_fill([(0.03, 1000)], 1.0, 0.02) + assert sh is None and "above" in r + # empty/failed book + assert vb.model_fill([], 1.0, 0.02)[2] == "no asks on the book" + assert vb.model_fill(None, 1.0, 0.02)[2] == "book fetch failed" + + +@case("band: a 1.9c best ask does NOT walk into 2.5c levels") +def t2(): + sh, px, r = vb.model_fill([(0.019, 30), (0.025, 1000)], 1.0, 0.02) + assert sh is None, "walked past min(MAX_PX, best*1.05)" + + +@case("event cap 1: second ticket on the same event is skipped") +def t3(): + st = vb.load_state() + vb.book_asks = lambda tok: [(0.01, 1000)] + vb.open_positions(st, [cand("A", "ev-2026-07-17"), + cand("B", "ev-2026-07-17"), + cand("C", "other-2026-07-18")], budget=10) + assert set(st["my_pos"]) == {"A", "C"}, set(st["my_pos"]) + assert st["stats"]["fills"] == 2 and st["stats"]["attempts"] == 2 + + +@case("cooldown: a missed token is not re-checked inside COOLDOWN_S") +def t4(): + st = vb.load_state() + vb.book_asks = lambda tok: [(0.01, 10)] # thin -> miss + vb.open_positions(st, [cand("A")], budget=10) + assert st["stats"]["misses"] == 1 + vb.open_positions(st, [cand("A")], budget=10) # immediately again + assert st["stats"]["attempts"] == 1, "re-attempted inside cooldown" + + +@case("settle: win pays full, refund pays 0.5, loss pays 0 — cash exact") +def t5(): + st = vb.load_state() + vb.book_asks = lambda tok: [(0.01, 1000)] + for t_ in ("W", "R", "L"): + vb.open_positions(st, [cand(t_, event=t_)], budget=10) + cash_after_open = st["cash"] + vecs = {"0xcW": [1.0, 0.0], "0xcR": [0.5, 0.5], "0xcL": [0.0, 1.0]} + vb.onchain_payouts = lambda cond, rpc: vecs[cond] + vb.settle(st, rpc="stub", budget=10) + s = st["stats"] + assert (s["wins"], s["refunds"], s["losses"]) == (1, 1, 1) + sh = 1.0 / 0.01 + assert abs(st["cash"] - (cash_after_open + sh*1.0 + sh*0.5)) < 1e-6 + assert not st["my_pos"] + + +@case("unresolved market stays open; feed math consistent") +def t6(): + st = vb.load_state() + vb.book_asks = lambda tok: [(0.01, 1000)] + vb.open_positions(st, [cand("A")], budget=10) + vb.onchain_payouts = lambda cond, rpc: None # denominator 0 + vb.settle(st, rpc="stub", budget=10) + assert "A" in st["my_pos"] and st["stats"]["resolved"] == 0 + feed = vb.write_feed(st) + assert feed["open_count"] == 1 and feed["deployed"] == 1.0 + assert feed["fill_rate"] == 1.0 + + +print() +print("FAILURES:", fails or "none") +sys.exit(1 if fails else 0) diff --git a/value/fly.Dockerfile b/value/fly.Dockerfile new file mode 100644 index 00000000..d8aa1843 --- /dev/null +++ b/value/fly.Dockerfile @@ -0,0 +1,9 @@ +# wwf-valuebot — VALUE silo image. Deliberately separate from the copybot's +# fly.Dockerfile: valuebot is pure stdlib, so this never needs to move when +# the copybot's SDK pins change (and vice versa). +FROM python:3.12-slim +RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates \ + && rm -rf /var/lib/apt/lists/* +COPY value/start.sh /start.sh +RUN chmod +x /start.sh +CMD ["/bin/bash", "/start.sh"] diff --git a/value/start.sh b/value/start.sh new file mode 100644 index 00000000..86ce1bc6 --- /dev/null +++ b/value/start.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Boot for the wwf-valuebot Fly worker (VALUE silo — value/PLAN.md). +# Clones main fresh (public read; GITHUB_TOKEN enables state pushes), +# verifies the clone against ls-remote (stale-replica guard, same lesson as +# the copybot's), then runs the paper bot. No HTTP service on purpose: no +# health-check auto-restarts to race a state surgery (README gotcha 15). +set -e +REPO="github.com/jaxperro/winning-wallet-finder.git" +DIR=/tmp/wwf +for i in 1 2 3 4; do + rm -rf "$DIR" + if [ -n "${GITHUB_TOKEN:-}" ]; then + git clone -q --depth 1 "https://x-access-token:${GITHUB_TOKEN}@${REPO}" "$DIR" + else + git clone -q --depth 1 "https://${REPO}" "$DIR" + fi + HEAD=$(git -C "$DIR" rev-parse HEAD) + REMOTE=$(git ls-remote "https://${REPO}" HEAD | cut -f1) + if [ "$HEAD" = "$REMOTE" ]; then + echo "[clone-guard] clone verified @ ${HEAD:0:10}" + break + fi + echo "[clone-guard] stale clone ($HEAD != $REMOTE) — retry $i" + sleep 5 +done +cd "$DIR" +git config user.email "valuebot@wwf" && git config user.name "wwf-valuebot" +[ -z "${GITHUB_TOKEN:-}" ] && echo "⚠ no GITHUB_TOKEN — feed publishing will fail (paper book not durable across restarts)" +exec python3 -u value/valuebot.py diff --git a/value/valuebot.json b/value/valuebot.json new file mode 100644 index 00000000..7bc0ec96 --- /dev/null +++ b/value/valuebot.json @@ -0,0 +1 @@ +{"mode": "paper-value", "bank": 1000.0, "cash": 942.27, "deployed": 55.0, "open_count": 55, "stats": {"attempts": 120, "fills": 55, "misses": 65, "resolved": 0, "wins": 0, "refunds": 0, "losses": 0, "staked": 55.0, "returned": 0.0, "fees": 2.731899999999998}, "realized_multiple": null, "fill_rate": 0.4583, "recent_resolved": [], "recent_missed": [{"ts": 1784257536, "token": "111454197885902579123646318605428291459312517993863770329231378364775930615234", "mark": 0.004, "title": "Will Jeff Bezos be richest person on December 31?", "reason": "only $0.71 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "21700256477953461322829595595971259189286852519906289976553977571532870719897", "mark": 0.004, "title": "Will Jensen Huang be richest person on December 31?", "reason": "only $0.72 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "115055397260683461892027718934804755177371613204852263881954807501570063206911", "mark": 0.0115, "title": "Will Warren Buffett be richest person on December 31?", "reason": "only $0.14 of asks inside the band (cap 0.014) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "4016319186817811611012470647934537864070636218073137413331559045803427627332", "mark": 0.004, "title": "Will Steve Ballmer be richest person on December 31?", "reason": "only $0.00 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "76199611355494823610049787982059397100238286589584562178205366623141259654052", "mark": 0.0055, "title": "Will Larry Page be richest person on December 31?", "reason": "only $0.17 of asks inside the band (cap 0.006) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "57362872515996779646330392792968364197447194546322339120726729263378672989286", "mark": 0.0125, "title": "Will the 10-year Treasury yield dip below 1.0% before 2027?", "reason": "only $0.47 of asks inside the band (cap 0.020) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "10247531971996300388004475803735459869393730823778021341229573450450736262648", "mark": 0.0115, "title": "Will Toy Story 5 have the best domestic opening weekend in 2", "reason": "only $0.98 of asks inside the band (cap 0.013) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "89122639280139951852974936554756184346358334790398350569653103427135919364268", "mark": 0.0075, "title": "Will 2026 be the fourth-hottest year on record?", "reason": "only $0.08 of asks inside the band (cap 0.008) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "13077482279920101207310968124602583673569984432172021504617728683823467712777", "mark": 0.02, "title": "Will the US strike 13 countries in 2026?", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257536, "token": "43662629442676959677405804059038142071301669726653435926232668919830294739811", "mark": 0.0185, "title": "Will the US strike 14 countries in 2026?", "reason": "best ask 0.028 above 0.02"}, {"ts": 1784257674, "token": "35294451940845714528598835291538742373970398061582172636449036770601364185936", "mark": 0.0105, "title": "Will the lowest temperature in New York City be between 74-7", "reason": "only $0.65 of asks inside the band (cap 0.020) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "81543015770185864041270447278861452252436273448298595780169777501945035369443", "mark": 0.0005, "title": "Will the highest temperature in Mexico City be 27\u00b0C on July ", "reason": "only $0.01 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "83153288764757894613427374613249150810596498232626184389437330022635829294593", "mark": 0.005, "title": "Ferencv\u00e1rosi TC vs. FK Vojvodina Novi Sad: O/U 7.5 Total Cor", "reason": "only $0.06 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "14845366405948420244165913577791267890808856077865513919346301995553740398815", "mark": 0.0005, "title": "Will Csquare's market cap be between $3.5B and $4B at market", "reason": "only $0.29 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "80402222009104460386666606346233354031127252521671708795369722015888639260566", "mark": 0.0005, "title": "Exact Score: Botafogo FR 1 - 3 Santos FC?", "reason": "book fetch failed"}, {"ts": 1784257674, "token": "79201910509476651531160064788019644512313436173591815266061913899050677084145", "mark": 0.0005, "title": "Botafogo FR vs. Santos FC: 1st Half O/U 2.5", "reason": "book fetch failed"}, {"ts": 1784257674, "token": "14333746604194430020500398947469076839435740803390369576285454199202759611203", "mark": 0.012, "title": "Will the next Claude Opus model be released by July 16, 2026", "reason": "best ask 0.024 above 0.02"}, {"ts": 1784257674, "token": "19773381181544894683699963136254163800712793625083555712038661280931305071097", "mark": 0.0085, "title": "Will Angela Murray be evicted in Big Brother season 28 (Week", "reason": "only $0.59 of asks inside the band (cap 0.018) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "3184770255487190240811631801497476570417446683428862154089297834224195403372", "mark": 0.0195, "title": "Iran successfully targets shipping on July 16?", "reason": "best ask 0.029 above 0.02"}, {"ts": 1784257674, "token": "103546568571553702551534378585018591781132269586367910119837290337034611353693", "mark": 0.0005, "title": "Will Rick Devens be evicted in Big Brother season 28 (Week 1", "reason": "only $0.03 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "67526255029238413731735106771768975826480440542342973154508504694890933180834", "mark": 0.002, "title": "Will Trump say \"Ukraine\" during Speech to the Nation?", "reason": "only $0.60 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "32872841843403360158632460069346077510890341600074181899387643709303393822711", "mark": 0.0075, "title": "Will Marcus Howard Pearcey win the 2026 Norfolk Police and C", "reason": "only $0.27 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "35877722247871110717070436061913219079639637153039173026036629848121814477309", "mark": 0.0005, "title": "Will Trump say \"Make America Great Again\" during Speech to t", "reason": "only $0.41 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "24286114396498127185982331571368265046865602278024194384567054847571177330561", "mark": 0.0035, "title": "Will LaTrice Verrett be evicted in Big Brother season 28 (We", "reason": "only $0.14 of asks inside the band (cap 0.007) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "110514697460843446088229488922853007354658192911342513364708893923724867950737", "mark": 0.0005, "title": "Will Melody Morris be evicted in Big Brother season 28 (Week", "reason": "only $0.01 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "63680745558188170810413604279234223206952049340782418852907487830280169998635", "mark": 0.002, "title": "Will Trump accuse Israel of election interference by July 16", "reason": "only $0.32 of asks inside the band (cap 0.004) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "115479490406812957357402289564415387633790978066890016915369458408240078095240", "mark": 0.003, "title": "Will Trump accuse China of election interference by July 16?", "reason": "only $0.90 of asks inside the band (cap 0.003) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "49255498632090320592056403338086150853791238443573686986004780373400932082977", "mark": 0.011, "title": "Will the next UK Prime Minister be appointed by July 16?", "reason": "best ask 0.022 above 0.02"}, {"ts": 1784257674, "token": "109842881227018115836313823923057111558489966563921987514815622829448596424266", "mark": 0.0125, "title": "Will Trump accuse Venezuela of election interference by July", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257674, "token": "100502914627030931832570591960286253126495000571396845988794133369741114597338", "mark": 0.0045, "title": "Will Trump accuse Mexico of election interference by July 16", "reason": "only $0.42 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "56359981143449141852315844582002358957410168652231835147015867845933172888959", "mark": 0.005, "title": "Will Trump accuse Germany of election interference by July 1", "reason": "only $0.40 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "29649709652944952249966890920683875016824692156389793805392538709348711539675", "mark": 0.0105, "title": "Will Trump accuse Ukraine of election interference by July 1", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257674, "token": "79070547476442766501679259848380975409232905679828115802401698204016632621233", "mark": 0.015, "title": "Will the White House call a full lid by 6:30 PM on July 16?", "reason": "best ask 0.029 above 0.02"}, {"ts": 1784257674, "token": "14858009808573710430724695800183227465957429840212288354603999098381184071486", "mark": 0.0015, "title": "Will Phoenix Flames finish in 1st place at the Major League ", "reason": "only $0.03 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "71893732068584209502041746528636528203452155758431635915115335720493703706961", "mark": 0.0055, "title": "Will California Black Bears finish in 1st place at the Major", "reason": "only $0.05 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "51375171494444400785393128082485261717908623023822992393526675913268176991041", "mark": 0.0015, "title": "Will Florida Smash finish in 1st place at the Major League P", "reason": "only $0.01 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "100586098883688785424696230383501088708762512365219837895089102560519223800436", "mark": 0.0045, "title": "Leones de Ponce vs. Atleticos de San German: O/U 173.5", "reason": "only $0.69 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "21950996217315394363057865275498687665595978521049132343965223921555142728187", "mark": 0.0115, "title": "Exact Score: Seattle Sounders FC 3 - 3 Portland Timbers?", "reason": "best ask 0.022 above 0.02"}, {"ts": 1784257674, "token": "42105819687471335686363939168519314903545511701524605443993573137769554418650", "mark": 0.016, "title": "Exact Score: Seattle Sounders FC 2 - 3 Portland Timbers?", "reason": "best ask 0.036 above 0.02"}, {"ts": 1784257674, "token": "31154226915777278418219344800686477424981429215146927068074861715899348995957", "mark": 0.016, "title": "Exact Score: Seattle Sounders FC 1 - 3 Portland Timbers?", "reason": "best ask 0.043 above 0.02"}], "open": [{"t": "Will Harvey Weinstein be sentenced to between 10 and 20 years in prison?", "px": 0.009, "out": "Yes", "end": "2025-12-31T12:00:00Z"}, {"t": "Will Wes Moore win the 2028 Democratic presidential nomination?", "px": 0.014, "out": "Yes", "end": "2028-11-07T00:00:00Z"}, {"t": "Will Wes Moore win the 2028 US Presidential Election?", "px": 0.009, "out": "Yes", "end": "2028-11-07T00:00:00Z"}, {"t": "Will Donald Trump win the 2028 Republican presidential nomination?", "px": 0.016, "out": "Yes", "end": "2028-11-07T00:00:00Z"}, {"t": "2026 Balance of Power: D Senate, R House", "px": 0.018, "out": "Yes", "end": "2026-11-03T00:00:00Z"}, {"t": "Will Sung-Jae Im win the 2026 Masters tournament?", "px": 0.001, "out": "Yes", "end": "2026-04-13T00:00:00Z"}, {"t": "Will Mallory McMorrow win the 2026 Michigan Democratic Primary?", "px": 0.001, "out": "Yes", "end": "2026-08-04T00:00:00Z"}, {"t": "Will Tarcisio de Freitas win the 2026 Brazilian presidential election?", "px": 0.002, "out": "Yes", "end": "2026-10-04T00:00:00Z"}, {"t": "Will Tarcisio de Frietas qualify for Brazil's presidential runoff?", "px": 0.019, "out": "Yes", "end": "2026-10-04T00:00:00Z"}, {"t": "Will Erling Haaland win the 2026 Ballon d'Or?", "px": 0.003, "out": "Yes", "end": "2026-10-31T00:00:00Z"}, {"t": "Will 3 Fed rate cuts happen in 2026?", "px": 0.012, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will Rick Caruso win the California Governor Election in 2026?", "px": 0.001, "out": "Yes", "end": "2026-11-03T00:00:00Z"}, {"t": "Will the Democrats win the Nebraska Senate race in 2026?", "px": 0.009, "out": "Yes", "end": "2026-11-03T00:00:00Z"}, {"t": "Will Adam Crum win the 2026 Alaska governor election?", "px": 0.004, "out": "Yes", "end": "2026-11-03T00:00:00Z"}, {"t": "Will Julian Assange win the Nobel Peace Prize in 2026?", "px": 0.018, "out": "Yes", "end": "2026-10-10T00:00:00Z"}, {"t": "Will Trump sell 10k-25k Gold Cards in 2026?", "px": 0.019, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Fed abolished before 2027?", "px": 0.017, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will Zelenskyy and Putin meet next in Turkey before 2027?", "px": 0.017, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will Microsoft be the largest company in the world by market cap on December 31?", "px": 0.006, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will Sergey Brin be richest person on December 31?", "px": 0.004, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will US GDP growth in 2026 be between 1.0% and 1.5%?", "px": 0.01, "out": "Yes", "end": "2027-01-29T00:00:00Z"}, {"t": "Will Wicked: For Good be the top grossing movie of 2026?", "px": 0.002, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will The Odyssey have the best domestic opening weekend in 2026?", "px": 0.02, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will 2026 be the fifth-hottest year on record?", "px": 0.003, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will Israel strike 7 countries in 2026?", "px": 0.02, "out": "Yes", "end": "2026-12-31T00:00:00Z"}, {"t": "Will SpaceX Starship Flight Test 13 launch by July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T00:00:00Z"}, {"t": "Will the highest temperature in Austin be 75\u00b0F or below on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the lowest temperature in Miami be 90\u00b0F or higher on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Denver be between 98-99\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Seattle be between 68-69\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Miami be between 102-103\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Panama City be 32\u00b0C on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in San Francisco be between 68-69\u00b0F on July 16?", "px": 0.001, "out": "No", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the lowest temperature in New York City be between 72-73\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in New York City be 87\u00b0F or below on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Buenos Aires be 17\u00b0C on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Dallas be between 94-95\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Houston be between 94-95\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Toronto be 36\u00b0C on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Atlanta be between 96-97\u00b0F on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Chicago be 108\u00b0F or higher on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Mexico City be 21\u00b0C on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Los Angeles be between 82-83\u00b0F on July 16?", "px": 0.001, "out": "No", "end": "2026-07-16T12:00:00Z"}, {"t": "Will the highest temperature in Sao Paulo be 28\u00b0C on July 16?", "px": 0.001, "out": "Yes", "end": "2026-07-16T12:00:00Z"}, {"t": "Botafogo FR vs. Santos FC: Both Teams to Score in Second Half", "px": 0.001, "out": "No", "end": "2026-07-16T22:30:00Z"}, {"t": "Will CR Brasil vs. Clube N\u00e1utico Capibaribe end in a draw?", "px": 0.001, "out": "Yes", "end": "2026-07-16T23:00:00Z"}, {"t": "Will Trump say \"Crooked\" during Speech to the Nation?", "px": 0.008, "out": "Yes", "end": "2026-07-16T23:59:00Z"}, {"t": "Will Lyric Medeiros be evicted in Big Brother season 28 (Week 1)?", "px": 0.02, "out": "Yes", "end": "2026-07-16T23:59:00Z"}, {"t": "Will Christopher John Brown win the 2026 Norfolk Police and Crime Commissioner b", "px": 0.009, "out": "Yes", "end": "2026-07-16T23:59:00Z"}, {"t": "Spread: Cangrejeros de Santurce (-3.5)", "px": 0.009, "out": "Cangrejeros de Santurce", "end": "2026-07-17T00:00:00Z"}, {"t": "Spread: Leones de Ponce (-9.5)", "px": 0.009, "out": "Leones de Ponce", "end": "2026-07-17T00:00:00Z"}, {"t": "Exact Score: Chicago Fire FC 0 - 3 Vancouver Whitecaps FC?", "px": 0.02, "out": "Yes", "end": "2026-07-17T00:30:00Z"}, {"t": "St. Louis City SC to score first vs. Sporting Kansas City?", "px": 0.001, "out": "No", "end": "2026-07-17T00:30:00Z"}, {"t": "Map 1 Total Rounds: Over/Under 24.5", "px": 0.01, "out": "Over", "end": "2026-07-17T00:45:00Z"}, {"t": "Club Necaxa vs. Atlante FC: Club Necaxa O/U 0.5", "px": 0.001, "out": "Under", "end": "2026-07-17T01:00:00Z"}], "updated": 1784257729} \ No newline at end of file diff --git a/value/valuebot.py b/value/valuebot.py new file mode 100644 index 00000000..1360a8e1 --- /dev/null +++ b/value/valuebot.py @@ -0,0 +1,397 @@ +#!/usr/bin/env python3 +"""VALUE paper bot — systematic sub-2¢ portfolio (value/PLAN.md, strategy V0). + +SILO RULES (user directive 2026-07-17): this file must not import copybot.py +or copytrade.py, share no state/feed/webhook/wallet with the copy trader, and +touch only value/* paths. The ~60 lines of book/fee/payout helpers are +DUPLICATED here on purpose — total blast-radius isolation is worth it. + +The strategy is a law-of-large-numbers portfolio: every active market with an +ask ≤ 2¢ is a candidate; stake is flat $1 (the venue minimum — reality, not +choice); positions hold to resolution and settle at CHAIN truth (payout +vectors — 0.5 refunds are real). The calibration study says such entries +resolved ~1.24x their price; the ONE thing history can't say is whether the +fills exist, so the fill model is brutally honest (2026-07-16 parity lesson): +a candidate with less than $1 of asks inside the protected band is a MISS, +never a pretend fill. + +Run: python3 value/valuebot.py --once # one scan cycle, no publishing + python3 value/valuebot.py # loop (Fly worker; publishes feed) +""" +import argparse +import calendar +import json +import os +import re +import ssl +import subprocess +import time +import urllib.request + +HERE = os.path.dirname(os.path.abspath(__file__)) +REPO = os.path.dirname(HERE) +SSL_CTX = ssl._create_unverified_context() + +GAMMA = "https://gamma-api.polymarket.com" +CLOB = "https://clob.polymarket.com" +CTF = "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045" +_SEL_DEN = "0xdd34de67" # payoutDenominator(bytes32) +_SEL_NUM = "0x0504c814" # payoutNumerators(bytes32,uint256) + +STATE = os.path.join(HERE, "valuebot_state.json") +FEED = os.path.join(HERE, "valuebot.json") +FILLS = os.path.join(HERE, "valuebot_fills.jsonl") + +BANK = 1000.0 # paper bankroll +STAKE = 1.0 # flat, = venue minimum (reality) +MAX_PX = 0.02 # the studied bucket boundary +BAND = 1.05 # protected band: ask*(1+5%), like the live executor +MAX_OPEN = 300 # portfolio cap -> max $300 deployed +SCAN_S = 300 +BOOK_BUDGET = 60 # CLOB book fetches per cycle (be a good citizen) +SETTLE_BUDGET = 40 # payout-vector checks per cycle +COOLDOWN_S = 6 * 3600 # re-look at a skipped/missed token after 6h +FEED_PUSH_MIN_S = 300 +MISS_KEEP = 500 # ledger rows kept in state (totals never truncate) + +# Fee Structure V2 rates by category keyword (entry side only — redeem is free) +FEE_RATES = [("crypto", 0.07), ("sport", 0.03), ("esport", 0.03), + ("finance", 0.04), ("politic", 0.04), ("tech", 0.04), + ("geopolit", 0.0)] +FEE_DEFAULT = 0.05 + + +def log(m): + print(f"{time.strftime('%H:%M:%S')} {m}", flush=True) + + +def get_json(url, timeout=15): + req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + with urllib.request.urlopen(req, timeout=timeout, context=SSL_CTX) as r: + return json.loads(r.read().decode()) + + +def fee_rate(category): + c = (category or "").lower() + for k, r in FEE_RATES: + if k in c: + return r + return FEE_DEFAULT + + +def taker_fee(shares, price, rate): + return shares * rate * price * (1.0 - price) + + +def event_key(slug): + """Correlation group: sub-split slugs collapse to their date prefix (the + copy book learned this the hard way — one game, six markets).""" + m = re.match(r"(.*?\d{4}-\d{2}-\d{2})", slug or "") + return m.group(1) if m else (slug or None) + + +# ── market data ────────────────────────────────────────────────────────────── + +def scan_universe(max_pages=60): + """Active gamma markets with any outcome priced ≤ MAX_PX. Yields candidate + dicts. outcomePrices is gamma's own mark — cheap prefilter only; the CLOB + book is the truth a fill model is allowed to use.""" + out, offset = [], 0 + for _ in range(max_pages): + try: + # soonest-ending first: the calibration edge concentrates at short + # time-to-resolution, so the book budget goes there before the + # 2028-politics dust the default page order surfaces + page = get_json(f"{GAMMA}/markets?active=true&closed=false" + f"&order=endDate&ascending=true" + f"&end_date_min={time.strftime('%Y-%m-%d')}" + f"&limit=100&offset={offset}") + except Exception as e: + log(f"gamma page {offset} failed: {str(e)[:60]}") + break + if not page: + break + for m in page: + try: + prices = [float(x) for x in json.loads(m.get("outcomePrices") or "[]")] + toks = json.loads(m.get("clobTokenIds") or "[]") + outs = json.loads(m.get("outcomes") or "[]") + except Exception: + continue + if len(prices) != len(toks) or not toks: + continue + for i, px in enumerate(prices): + if 0.0 < px <= MAX_PX: + ev = (m.get("events") or [{}])[0] + out.append({ + "token": toks[i], "outcome": outs[i] if i < len(outs) else "?", + "mark": px, "cond": m.get("conditionId"), + "title": m.get("question") or "", + "end": m.get("endDate"), "cat": m.get("category") + or ev.get("category") or "", + "event": event_key(ev.get("slug") or m.get("slug")), + "tok_index": i, "n_outcomes": len(toks)}) + offset += 100 + if len(page) < 100: + break + return out + + +def book_asks(token): + """Ask ladder [(price, size)] cheapest-first, or None on failure.""" + try: + b = get_json(f"{CLOB}/book?token_id={token}", timeout=8) + asks = sorted(((float(a["price"]), float(a["size"])) + for a in b.get("asks") or []), key=lambda x: x[0]) + return asks + except Exception: + return None + + +def model_fill(asks, stake, max_px, band=BAND): + """Walk the real ask ladder inside min(max_px, best_ask*band); a FAK for + `stake` dollars either fully fills inside the band or is an honest MISS + (None, reason). Returns (shares, avg_price, None) on fill.""" + if asks is None: + return None, None, "book fetch failed" + if not asks: + return None, None, "no asks on the book" + best = asks[0][0] + if best > max_px: + return None, None, f"best ask {best:.3f} above {max_px:.2f}" + cap = min(max_px, round(best * band, 6)) + usd, shares = 0.0, 0.0 + for px, sz in asks: + if px > cap: + break + take_usd = min(stake - usd, px * sz) + shares += take_usd / px + usd += take_usd + if usd >= stake - 1e-9: + return shares, usd / shares, None + return None, None, (f"only ${usd:.2f} of asks inside the band " + f"(cap {cap:.3f}) — FAK no-match") + + +# ── chain-truth settlement ─────────────────────────────────────────────────── + +def _rpc_url(): + url = os.environ.get("ALCHEMY_RPC_URL") + if url: + return url + try: + k = json.load(open(os.path.join(REPO, "config.json"))).get("alchemy_key") + return f"https://polygon-mainnet.g.alchemy.com/v2/{k}" if k else None + except Exception: + return None + + +def onchain_payouts(cond, rpc): + """[p0, p1, ...] in the market's token order, or None if unresolved. + Denominator 0 = not resolved; [0.5, 0.5] refunds are REAL payouts.""" + if not (rpc and cond): + return None + + def call(data): + body = json.dumps({"jsonrpc": "2.0", "id": 1, "method": "eth_call", + "params": [{"to": CTF, "data": data}, "latest"]}).encode() + req = urllib.request.Request(rpc, data=body, + headers={"Content-Type": "application/json"}) + with urllib.request.urlopen(req, timeout=15, context=SSL_CTX) as r: + return json.loads(r.read())["result"] + try: + c = cond[2:].rjust(64, "0") + den = int(call(_SEL_DEN + c), 16) + if not den: + return None + n = 2 + return [int(call(_SEL_NUM + c + hex(i)[2:].rjust(64, "0")), 16) / den + for i in range(n)] + except Exception: + return None + + +# ── the bot ────────────────────────────────────────────────────────────────── + +def load_state(): + try: + return json.load(open(STATE)) + except Exception: + return {"cash": BANK, "my_pos": {}, "resolved": [], "missed": [], + "attempted": {}, "stats": {"attempts": 0, "fills": 0, + "misses": 0, "resolved": 0, "wins": 0, "refunds": 0, + "losses": 0, "staked": 0.0, "returned": 0.0, "fees": 0.0}, + "started": int(time.time())} + + +def save_state(st): + json.dump(st, open(STATE, "w")) + + +def open_positions(st, cands, budget): + """Try to open new $1 tickets, honest-fill-model, event cap 1.""" + held_events = {p.get("event") for p in st["my_pos"].values() if p.get("event")} + now = time.time() + checked = 0 + for c in cands: + if checked >= budget or len(st["my_pos"]) >= MAX_OPEN: + break + tok = c["token"] + if tok in st["my_pos"]: + continue + if now - st["attempted"].get(tok, 0) < COOLDOWN_S: + continue + if c["event"] and c["event"] in held_events: + continue # correlated dust resolves together + if st["cash"] < STAKE: + log("CAN'T OPEN — cash exhausted (portfolio at size)") + break + st["attempted"][tok] = now + checked += 1 + st["stats"]["attempts"] += 1 + shares, px, reason = model_fill(book_asks(tok), STAKE, MAX_PX) + if reason: + st["stats"]["misses"] += 1 + st["missed"].append({"ts": int(now), "token": tok, "mark": c["mark"], + "title": c["title"][:60], "reason": reason}) + st["missed"] = st["missed"][-MISS_KEEP:] + continue + rate = fee_rate(c["cat"]) + fee = taker_fee(shares, px, rate) + st["cash"] -= STAKE + fee + st["stats"]["fills"] += 1 + st["stats"]["staked"] += STAKE + st["stats"]["fees"] += fee + st["my_pos"][tok] = {"shares": shares, "cost": STAKE, "fee": round(fee, 6), + "price": round(px, 6), "cond": c["cond"], + "title": c["title"][:80], "outcome": c["outcome"], + "event": c["event"], "end": c["end"], + "tok_index": c["tok_index"], "opened": int(now)} + held_events.add(c["event"]) + with open(FILLS, "a") as fh: + fh.write(json.dumps({"ts": int(now), "side": "BUY", "token": tok, + "shares": round(shares, 4), "price": round(px, 6), + "fee": round(fee, 6), "title": c["title"][:60]}) + "\n") + log(f"OPEN {shares:,.0f} sh @ {px:.4f} (${STAKE}) · {c['title'][:50]}") + # prune the cooldown map so state can't grow unbounded + st["attempted"] = {t: ts for t, ts in st["attempted"].items() + if now - ts < 2 * COOLDOWN_S} + + +def settle(st, rpc, budget): + """Chain-truth settlement for positions past their end date.""" + now = time.time() + done = 0 + for tok, p in list(st["my_pos"].items()): + if done >= budget: + break + end = p.get("end") + try: + # gamma endDate is UTC — timegm, NOT mktime (repo lesson: mktime + # assumes local and shifts settles by the box's UTC offset) + end_ts = calendar.timegm(time.strptime(end[:19], "%Y-%m-%dT%H:%M:%S")) if end else 0 + except Exception: + end_ts = 0 + if end_ts and now < end_ts - 300: + continue # not due yet + vec = onchain_payouts(p["cond"], rpc) + done += 1 + if vec is None: + continue # unresolved — try next cycle + idx = min(p.get("tok_index", 0), len(vec) - 1) + payout = vec[idx] * p["shares"] + st["cash"] += payout + s = st["stats"] + s["resolved"] += 1 + s["returned"] += payout + kind = ("refund" if 0 < vec[idx] < 1 else + "win" if vec[idx] >= 1 else "loss") + s["wins" if kind == "win" else "refunds" if kind == "refund" else "losses"] += 1 + st["resolved"].append({"ts": int(now), "token": tok, "price": p["price"], + "cost": p["cost"], "payout": round(payout, 4), + "kind": kind, "title": p["title"][:60]}) + st["resolved"] = st["resolved"][-MISS_KEEP:] + del st["my_pos"][tok] + log(f"SETTLE {kind.upper()} {payout:+.2f} · entered {p['price']:.4f} · " + f"{p['title'][:50]}") + + +def write_feed(st): + s = st["stats"] + deployed = sum(p["cost"] for p in st["my_pos"].values()) + mult = (s["returned"] / s["staked"]) if s["staked"] else None + # break-even multiple is 1 + fee drag; the study's promise was ~1.24x + feed = {"mode": "paper-value", "bank": BANK, "cash": round(st["cash"], 2), + "deployed": round(deployed, 2), "open_count": len(st["my_pos"]), + "stats": s, "realized_multiple": round(mult, 4) if mult else None, + "fill_rate": round(s["fills"] / s["attempts"], 4) if s["attempts"] else None, + "recent_resolved": st["resolved"][-40:], "recent_missed": st["missed"][-40:], + "open": [{"t": p["title"], "px": p["price"], "out": p["outcome"], + "end": p.get("end")} for p in list(st["my_pos"].values())[:60]], + "updated": int(time.time())} + json.dump(feed, open(FEED, "w")) + return feed + + +def publish(last_push): + """Commit value/* only. Same pull-rebase-push discipline as the books.""" + if time.time() - last_push < FEED_PUSH_MIN_S: + return last_push + try: + subprocess.run(["git", "add", "value/valuebot_state.json", + "value/valuebot.json", "value/valuebot_fills.jsonl"], + cwd=REPO, check=True, capture_output=True) + r = subprocess.run(["git", "diff", "--cached", "--quiet"], cwd=REPO) + if r.returncode == 0: + return last_push + subprocess.run(["git", "commit", "-q", "-m", + "valuebot: paper feed [skip ci]"], cwd=REPO, check=True, + capture_output=True) + subprocess.run(["git", "pull", "--rebase", "--autostash", "-q"], + cwd=REPO, capture_output=True) + subprocess.run(["git", "push", "-q"], cwd=REPO, check=True, + capture_output=True, timeout=60) + return time.time() + except Exception as e: + log(f"publish failed (non-fatal): {str(e)[:70]}") + return last_push + + +def cycle(st, rpc, publish_feed=False, last_push=0.0): + cands = scan_universe() + log(f"universe: {len(cands)} sub-{MAX_PX:.0%} candidates") + settle(st, rpc, SETTLE_BUDGET) + open_positions(st, cands, BOOK_BUDGET) + save_state(st) + feed = write_feed(st) + s = st["stats"] + log(f"book: cash ${st['cash']:,.2f} · open {len(st['my_pos'])} · " + f"fills {s['fills']}/{s['attempts']} · resolved {s['resolved']} " + f"({s['wins']}W/{s['losses']}L/{s['refunds']}R) · " + f"multiple {feed['realized_multiple']}") + if publish_feed: + last_push = publish(last_push) + return last_push + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--once", action="store_true", help="one cycle, no publish") + args = ap.parse_args() + rpc = _rpc_url() + log(f"valuebot · paper · chain settle {'ON' if rpc else 'OFF (no RPC!)'}") + st = load_state() + if args.once: + cycle(st, rpc, publish_feed=False) + return + last_push = 0.0 + while True: + try: + last_push = cycle(st, rpc, publish_feed=True, last_push=last_push) + except Exception as e: + log(f"cycle error: {str(e)[:100]}") + time.sleep(SCAN_S) + + +if __name__ == "__main__": + main() diff --git a/value/valuebot_fills.jsonl b/value/valuebot_fills.jsonl new file mode 100644 index 00000000..59da77e0 --- /dev/null +++ b/value/valuebot_fills.jsonl @@ -0,0 +1,55 @@ +{"ts": 1784257536, "side": "BUY", "token": "15540133404064485946536607974212890170021691204987131841181394872998839987451", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Will Harvey Weinstein be sentenced to between 10 and 20 year"} +{"ts": 1784257536, "side": "BUY", "token": "90227223115596293448966158151606153337847900483048338623540402385929720677904", "shares": 71.4286, "price": 0.014, "fee": 0.0493, "title": "Will Wes Moore win the 2028 Democratic presidential nominati"} +{"ts": 1784257536, "side": "BUY", "token": "35272507273162958827997790327967872292415567859334925862043618606081750011897", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Will Wes Moore win the 2028 US Presidential Election?"} +{"ts": 1784257536, "side": "BUY", "token": "3039641309958397001906153616677074061284510636204155275446291716739429262374", "shares": 62.5, "price": 0.016, "fee": 0.0492, "title": "Will Donald Trump win the 2028 Republican presidential nomin"} +{"ts": 1784257536, "side": "BUY", "token": "70997927349469817841862065582625658840347600365813612622959588796331622340305", "shares": 55.5556, "price": 0.018, "fee": 0.0491, "title": "2026 Balance of Power: D Senate, R House"} +{"ts": 1784257536, "side": "BUY", "token": "40774280038971372724174457035121000748756395696333205645831548131363721049199", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will Sung-Jae Im win the 2026 Masters tournament?"} +{"ts": 1784257536, "side": "BUY", "token": "28227838360096074788232992585368970461718254845788738931649369286727917170476", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will Mallory McMorrow win the 2026 Michigan Democratic Prima"} +{"ts": 1784257536, "side": "BUY", "token": "52634616068523389389514492087655237014427439869589807217055529923225131895030", "shares": 500.0, "price": 0.002, "fee": 0.0499, "title": "Will Tarcisio de Freitas win the 2026 Brazilian presidential"} +{"ts": 1784257536, "side": "BUY", "token": "46016408901619903295207375832539898750164493226855442884509133805980187874445", "shares": 52.6316, "price": 0.019, "fee": 0.04905, "title": "Will Tarcisio de Frietas qualify for Brazil's presidential r"} +{"ts": 1784257536, "side": "BUY", "token": "28452090262595806306683841543702974671789939255165753137157118490078999198778", "shares": 333.3333, "price": 0.003, "fee": 0.04985, "title": "Will Erling Haaland win the 2026 Ballon d'Or?"} +{"ts": 1784257536, "side": "BUY", "token": "95835705062472305459663741402900736177330733688944910993896545106260819635212", "shares": 83.3333, "price": 0.012, "fee": 0.0494, "title": "Will 3 Fed rate cuts happen in 2026?"} +{"ts": 1784257536, "side": "BUY", "token": "97079880955117270083666806029014143818118511996487378321036003805764596740938", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will Rick Caruso win the California Governor Election in 202"} +{"ts": 1784257536, "side": "BUY", "token": "55269299240433422758148290868724152324629587438760275683104577693660207425448", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Will the Democrats win the Nebraska Senate race in 2026?"} +{"ts": 1784257536, "side": "BUY", "token": "112101678667388918252758604047145833695065509511438805706635695881082938013669", "shares": 250.0, "price": 0.004, "fee": 0.0498, "title": "Will Adam Crum win the 2026 Alaska governor election?"} +{"ts": 1784257536, "side": "BUY", "token": "2514203837854735205913781359327052377275050226163878960745268210971566855346", "shares": 55.5556, "price": 0.018, "fee": 0.0491, "title": "Will Julian Assange win the Nobel Peace Prize in 2026?"} +{"ts": 1784257536, "side": "BUY", "token": "58858731796442679222989272055454043286056057669744610936854497026401512278651", "shares": 52.6316, "price": 0.019, "fee": 0.04905, "title": "Will Trump sell 10k-25k Gold Cards in 2026?"} +{"ts": 1784257536, "side": "BUY", "token": "2638212763635765664638931184596338750226895714451963915771516616454156509244", "shares": 58.8235, "price": 0.017, "fee": 0.04915, "title": "Fed abolished before 2027?"} +{"ts": 1784257536, "side": "BUY", "token": "26880262286353559461109525615512763357587866035194597494489295218957286731245", "shares": 58.8235, "price": 0.017, "fee": 0.04915, "title": "Will Zelenskyy and Putin meet next in Turkey before 2027?"} +{"ts": 1784257536, "side": "BUY", "token": "391670908629060088409431896998377161667071768186645889213963384874929102170", "shares": 166.6667, "price": 0.006, "fee": 0.0497, "title": "Will Microsoft be the largest company in the world by market"} +{"ts": 1784257536, "side": "BUY", "token": "50627054342292524063405225334567943340537585485453009001079628591959212607784", "shares": 250.0, "price": 0.004, "fee": 0.0498, "title": "Will Sergey Brin be richest person on December 31?"} +{"ts": 1784257536, "side": "BUY", "token": "3778701297142172054009835709694047837281608259621414725374943993931338899258", "shares": 100.0, "price": 0.01, "fee": 0.0495, "title": "Will US GDP growth in 2026 be between 1.0% and 1.5%?"} +{"ts": 1784257536, "side": "BUY", "token": "81662326158871781857247725348568394697379926716334270967994039975048021832777", "shares": 500.0, "price": 0.002, "fee": 0.0499, "title": "Will Wicked: For Good be the top grossing movie of 2026?"} +{"ts": 1784257536, "side": "BUY", "token": "78811978781022187641776289375780683316166629912443452648985718823109953148781", "shares": 50.0, "price": 0.02, "fee": 0.049, "title": "Will The Odyssey have the best domestic opening weekend in 2"} +{"ts": 1784257536, "side": "BUY", "token": "36385708241103656881636928091267439785598872725658076323572114247897288109684", "shares": 333.3333, "price": 0.003, "fee": 0.04985, "title": "Will 2026 be the fifth-hottest year on record?"} +{"ts": 1784257536, "side": "BUY", "token": "103149043231796752807018971660605675992799889771393087586255256574936406270971", "shares": 50.0, "price": 0.02, "fee": 0.049, "title": "Will Israel strike 7 countries in 2026?"} +{"ts": 1784257674, "side": "BUY", "token": "67270379508707453579822352759295200887632344396882723020536262528886991089078", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will SpaceX Starship Flight Test 13 launch by July 16?"} +{"ts": 1784257674, "side": "BUY", "token": "112530613306716166624306785625527243000936556874970549731102935274624880614808", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Austin be 75\u00b0F or below on J"} +{"ts": 1784257674, "side": "BUY", "token": "670318695093788286770480440596440124473469459020377953294919928322360769304", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the lowest temperature in Miami be 90\u00b0F or higher on Ju"} +{"ts": 1784257674, "side": "BUY", "token": "41890243833972194654560034930220120500393044272585435142490430815390166569328", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Denver be between 98-99\u00b0F on"} +{"ts": 1784257674, "side": "BUY", "token": "95737904431779569676576297188097388550423295707795662504699790788164073261113", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Seattle be between 68-69\u00b0F o"} +{"ts": 1784257674, "side": "BUY", "token": "108827586676863634986160975066769755770958032278021173591928361262685472235476", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Miami be between 102-103\u00b0F o"} +{"ts": 1784257674, "side": "BUY", "token": "40484969606304977313516258463960677557112896676385917551257832992338373395909", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Panama City be 32\u00b0C on July "} +{"ts": 1784257674, "side": "BUY", "token": "84776563282316625801986456207300733163917012868680022547211735104037218203714", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in San Francisco be between 68-"} +{"ts": 1784257674, "side": "BUY", "token": "29347276364974731963385024309120732757112983303839511905461040930236071572317", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the lowest temperature in New York City be between 72-7"} +{"ts": 1784257674, "side": "BUY", "token": "51262374926903001932468671028221713571892463560945941801282501273513087284674", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in New York City be 87\u00b0F or bel"} +{"ts": 1784257674, "side": "BUY", "token": "25239250531321775957539227586259572323063933935163514081809767561933575671111", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Buenos Aires be 17\u00b0C on July"} +{"ts": 1784257674, "side": "BUY", "token": "22754187563426351457864708727605642757046404804856337280235128783120898225547", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Dallas be between 94-95\u00b0F on"} +{"ts": 1784257674, "side": "BUY", "token": "60618958870658530867242758388795004561381687504211666692788906933769701638415", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Houston be between 94-95\u00b0F o"} +{"ts": 1784257674, "side": "BUY", "token": "60580767462908003202521160373814734051541521270964650920813469375623674696956", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Toronto be 36\u00b0C on July 16?"} +{"ts": 1784257674, "side": "BUY", "token": "29856550469832073692064803847822653016342885271929267791592525678769760700642", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Atlanta be between 96-97\u00b0F o"} +{"ts": 1784257674, "side": "BUY", "token": "51846560519512929162317725669327948765820777581623655178503251026299837013346", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Chicago be 108\u00b0F or higher o"} +{"ts": 1784257674, "side": "BUY", "token": "16892108417177785233910824250110050108374072497266057215023603815415832076961", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Mexico City be 21\u00b0C on July "} +{"ts": 1784257674, "side": "BUY", "token": "113304036176992406252151057788661842368048044822407179185609010385077607446716", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Los Angeles be between 82-83"} +{"ts": 1784257674, "side": "BUY", "token": "114906998005567740062379006506757539789607609377950129848657565529321642457520", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will the highest temperature in Sao Paulo be 28\u00b0C on July 16"} +{"ts": 1784257674, "side": "BUY", "token": "58017463736482610065171386990548333051004054628869782709973003023159082007681", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Botafogo FR vs. Santos FC: Both Teams to Score in Second Hal"} +{"ts": 1784257674, "side": "BUY", "token": "15390009074522870667148660165062730555236796460163940026652310740380869259440", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Will CR Brasil vs. Clube N\u00e1utico Capibaribe end in a draw?"} +{"ts": 1784257674, "side": "BUY", "token": "6390292418477923671015324158056070535023707144836057612462312618380536361710", "shares": 125.0, "price": 0.008, "fee": 0.0496, "title": "Will Trump say \"Crooked\" during Speech to the Nation?"} +{"ts": 1784257674, "side": "BUY", "token": "27992248566285722250207451571631985433667405172488328447455776588169729238911", "shares": 50.0, "price": 0.02, "fee": 0.049, "title": "Will Lyric Medeiros be evicted in Big Brother season 28 (Wee"} +{"ts": 1784257674, "side": "BUY", "token": "90402212796201292820992439163974818243468756690479945100638704540510089666133", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Will Christopher John Brown win the 2026 Norfolk Police and "} +{"ts": 1784257674, "side": "BUY", "token": "22779532518265431207930623944582312092826054206590222759621637519175542424824", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Spread: Cangrejeros de Santurce (-3.5)"} +{"ts": 1784257674, "side": "BUY", "token": "41920127678793154931001634763019653359905479407099008135587603675879855203603", "shares": 111.1111, "price": 0.009, "fee": 0.04955, "title": "Spread: Leones de Ponce (-9.5)"} +{"ts": 1784257674, "side": "BUY", "token": "102623997170607052328502977572291446032357640641101995688679962871454255972010", "shares": 50.0, "price": 0.02, "fee": 0.049, "title": "Exact Score: Chicago Fire FC 0 - 3 Vancouver Whitecaps FC?"} +{"ts": 1784257674, "side": "BUY", "token": "9346922233582986919029525981694074220837187281159717245848028631630516501435", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "St. Louis City SC to score first vs. Sporting Kansas City?"} +{"ts": 1784257674, "side": "BUY", "token": "105174454143504295787911892416971339275463065080906818567252962655061970238332", "shares": 100.0, "price": 0.01, "fee": 0.0495, "title": "Map 1 Total Rounds: Over/Under 24.5"} +{"ts": 1784257674, "side": "BUY", "token": "39427388354114737168139623919863330297267487065887316018128781936470792293870", "shares": 1000.0, "price": 0.001, "fee": 0.04995, "title": "Club Necaxa vs. Atlante FC: Club Necaxa O/U 0.5"} diff --git a/value/valuebot_state.json b/value/valuebot_state.json new file mode 100644 index 00000000..fc72f6fc --- /dev/null +++ b/value/valuebot_state.json @@ -0,0 +1 @@ +{"cash": 942.2681000000013, "my_pos": {"15540133404064485946536607974212890170021691204987131841181394872998839987451": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0x3d495a3e05eaffe438bb1c2ab97ed57a79b0a6ab18a2ca6fa5b448e20ce70082", "title": "Will Harvey Weinstein be sentenced to between 10 and 20 years in prison?", "outcome": "Yes", "event": "harvey-weinstein-prison-time", "end": "2025-12-31T12:00:00Z", "tok_index": 0, "opened": 1784257536}, "90227223115596293448966158151606153337847900483048338623540402385929720677904": {"shares": 71.42857142857143, "cost": 1.0, "fee": 0.0493, "price": 0.014, "cond": "0x61d9486c0f7e14ed98f3b177b6adcb3cd45646c92e8bbfbf209789b86472d4b6", "title": "Will Wes Moore win the 2028 Democratic presidential nomination?", "outcome": "Yes", "event": "democratic-presidential-nominee-2028", "end": "2028-11-07T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "35272507273162958827997790327967872292415567859334925862043618606081750011897": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0xe29b33ef5bf351c8a22bfd79f8b58e62649d54ceee6f9735387cef79f52fecae", "title": "Will Wes Moore win the 2028 US Presidential Election?", "outcome": "Yes", "event": "presidential-election-winner-2028", "end": "2028-11-07T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "3039641309958397001906153616677074061284510636204155275446291716739429262374": {"shares": 62.5, "cost": 1.0, "fee": 0.0492, "price": 0.016, "cond": "0x895e01dbf3e6a33cd9a44ca0f8cdb5df1bd2b0b6ebed5300d28f8da7145145e4", "title": "Will Donald Trump win the 2028 Republican presidential nomination?", "outcome": "Yes", "event": "republican-presidential-nominee-2028", "end": "2028-11-07T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "70997927349469817841862065582625658840347600365813612622959588796331622340305": {"shares": 55.55555555555556, "cost": 1.0, "fee": 0.0491, "price": 0.018, "cond": "0x0808de4f0cfd47947f2d1be51f9a9c52ea0fec76f73a75cfbe79ddec98d8a908", "title": "2026 Balance of Power: D Senate, R House", "outcome": "Yes", "event": "balance-of-power-2026-midterms", "end": "2026-11-03T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "40774280038971372724174457035121000748756395696333205645831548131363721049199": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xd8bf9a22e052cc97b14047a48552f3bd0e2605654e4fe580f48fa65e98d8487f", "title": "Will Sung-Jae Im win the 2026 Masters tournament?", "outcome": "Yes", "event": "the-masters-winner-2026", "end": "2026-04-13T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "28227838360096074788232992585368970461718254845788738931649369286727917170476": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xeb44a06c677ce7a47e5fd2007182e020a577395dc3613ad55d3d576e33964c3d", "title": "Will Mallory McMorrow win the 2026 Michigan Democratic Primary?", "outcome": "Yes", "event": "michigan-democratic-senate-primary-winner", "end": "2026-08-04T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "52634616068523389389514492087655237014427439869589807217055529923225131895030": {"shares": 500.0, "cost": 1.0, "fee": 0.0499, "price": 0.002, "cond": "0x81a537b379a35e4e17c286d3b37394e94bd74c1779bbe9a13670eb991b201a3a", "title": "Will Tarcisio de Freitas win the 2026 Brazilian presidential election?", "outcome": "Yes", "event": "brazil-presidential-election", "end": "2026-10-04T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "46016408901619903295207375832539898750164493226855442884509133805980187874445": {"shares": 52.631578947368425, "cost": 1.0, "fee": 0.04905, "price": 0.019, "cond": "0xd7391798f941b8fe16773f96397ef3f91a2fc36939bdd50a78776dbf93ddd280", "title": "Will Tarcisio de Frietas qualify for Brazil's presidential runoff?", "outcome": "Yes", "event": "which-candidates-will-advance-to-brazils-presidential-runoff", "end": "2026-10-04T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "28452090262595806306683841543702974671789939255165753137157118490078999198778": {"shares": 333.3333333333333, "cost": 1.0, "fee": 0.04985, "price": 0.003, "cond": "0xc89266786402aaabe78111eb91c6764d86857bbc4427c82b91d60a5ef69a70d0", "title": "Will Erling Haaland win the 2026 Ballon d'Or?", "outcome": "Yes", "event": "ballon-dor-winner-2026", "end": "2026-10-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "95835705062472305459663741402900736177330733688944910993896545106260819635212": {"shares": 83.33333333333333, "cost": 1.0, "fee": 0.0494, "price": 0.012, "cond": "0x8d4966e84ae80f24b2e14643fdd45364e354229e11e2c17903b4b1763cfbe67c", "title": "Will 3 Fed rate cuts happen in 2026?", "outcome": "Yes", "event": "how-many-fed-rate-cuts-in-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "97079880955117270083666806029014143818118511996487378321036003805764596740938": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x046941ddc09a5420aae85108b94bec3e1d7a3290b4144346cfc37e125282f958", "title": "Will Rick Caruso win the California Governor Election in 2026?", "outcome": "Yes", "event": "california-governor-election-2026", "end": "2026-11-03T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "55269299240433422758148290868724152324629587438760275683104577693660207425448": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0x12ac475399b12fd74917ccf0e29ce338eb4fc76c066cc8b56d01d2f9a2b17597", "title": "Will the Democrats win the Nebraska Senate race in 2026?", "outcome": "Yes", "event": "nebraska-senate-election-winner", "end": "2026-11-03T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "112101678667388918252758604047145833695065509511438805706635695881082938013669": {"shares": 250.0, "cost": 1.0, "fee": 0.0498, "price": 0.004, "cond": "0x807371dcb1fd0b3e3b406d8b2afa2f72285a896ae5198749a04b7d93c7b57529", "title": "Will Adam Crum win the 2026 Alaska governor election?", "outcome": "Yes", "event": "alaska-governor-election-winner", "end": "2026-11-03T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "2514203837854735205913781359327052377275050226163878960745268210971566855346": {"shares": 55.55555555555556, "cost": 1.0, "fee": 0.0491, "price": 0.018, "cond": "0x0cfec4bdb5b2060bba705259a76c489a9b0cc36da5edad65ecd796f461a89af5", "title": "Will Julian Assange win the Nobel Peace Prize in 2026?", "outcome": "Yes", "event": "nobel-peace-prize-winner-2026-139", "end": "2026-10-10T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "58858731796442679222989272055454043286056057669744610936854497026401512278651": {"shares": 52.631578947368425, "cost": 1.0, "fee": 0.04905, "price": 0.019, "cond": "0xb51d73fb402680d320b8ae1a1450c17c90eb5c5061d7d406c1f86465276adb60", "title": "Will Trump sell 10k-25k Gold Cards in 2026?", "outcome": "Yes", "event": "how-many-gold-cards-will-trump-sell-in-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "2638212763635765664638931184596338750226895714451963915771516616454156509244": {"shares": 58.8235294117647, "cost": 1.0, "fee": 0.04915, "price": 0.017, "cond": "0x014c25415332031ed85a2a9c7b5468c7d0f209e83f6a848c040907004604f563", "title": "Fed abolished before 2027?", "outcome": "Yes", "event": "fed-abolished-before-2027", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "26880262286353559461109525615512763357587866035194597494489295218957286731245": {"shares": 58.8235294117647, "cost": 1.0, "fee": 0.04915, "price": 0.017, "cond": "0x9af4aa93abfc53d756332ea0ddc4f65377bdd21ee7b979f0a5e5d4b4d3a164c4", "title": "Will Zelenskyy and Putin meet next in Turkey before 2027?", "outcome": "Yes", "event": "where-will-zelenskyy-and-putin-meet-next", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "391670908629060088409431896998377161667071768186645889213963384874929102170": {"shares": 166.66666666666666, "cost": 1.0, "fee": 0.0497, "price": 0.006, "cond": "0x6b978bfe3f8b58edd400556fa8d1f582d4b4f60d12286245af249fa8a6446bca", "title": "Will Microsoft be the largest company in the world by market cap on December 31?", "outcome": "Yes", "event": "largest-company-end-of-december-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "50627054342292524063405225334567943340537585485453009001079628591959212607784": {"shares": 250.0, "cost": 1.0, "fee": 0.0498, "price": 0.004, "cond": "0xb6a7fc8b3a3c7428a29976ef7e30748cbdc4776ad76c7098cadfaceb681441ef", "title": "Will Sergey Brin be richest person on December 31?", "outcome": "Yes", "event": "richest-person-on-december-31-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "3778701297142172054009835709694047837281608259621414725374943993931338899258": {"shares": 100.0, "cost": 1.0, "fee": 0.0495, "price": 0.01, "cond": "0x88038be57cc91815287021d71dc17189c5eecd2fb851228b4a408c5b6512becd", "title": "Will US GDP growth in 2026 be between 1.0% and 1.5%?", "outcome": "Yes", "event": "gdp-growth-in-2026", "end": "2027-01-29T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "81662326158871781857247725348568394697379926716334270967994039975048021832777": {"shares": 500.0, "cost": 1.0, "fee": 0.0499, "price": 0.002, "cond": "0xfd029ab3d6d27b6e1f3480dce858c97fb12e5bebd6fb50be7520102c56ba8ce1", "title": "Will Wicked: For Good be the top grossing movie of 2026?", "outcome": "Yes", "event": "highest-grossing-movie-in-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "78811978781022187641776289375780683316166629912443452648985718823109953148781": {"shares": 50.0, "cost": 1.0, "fee": 0.049, "price": 0.02, "cond": "0x342eaa2a3fe31eb5a20da27b589937a190a3f2f55fc83909df66e5f3db7d0f9e", "title": "Will The Odyssey have the best domestic opening weekend in 2026?", "outcome": "Yes", "event": "which-movie-has-biggest-opening-weekend-in-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "36385708241103656881636928091267439785598872725658076323572114247897288109684": {"shares": 333.3333333333333, "cost": 1.0, "fee": 0.04985, "price": 0.003, "cond": "0xecf2f4f2222e3393545e73f6ed219065c6bfa5c66db56a66541a4a20961fca26", "title": "Will 2026 be the fifth-hottest year on record?", "outcome": "Yes", "event": "where-will-2026-rank-among-the-hottest-years-on-record", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "103149043231796752807018971660605675992799889771393087586255256574936406270971": {"shares": 50.0, "cost": 1.0, "fee": 0.049, "price": 0.02, "cond": "0x9417863b1b7a9c394ae8f95b12445d3aebf9a916e9a7201f147af90c2b87f668", "title": "Will Israel strike 7 countries in 2026?", "outcome": "Yes", "event": "how-many-different-countries-will-israel-strike-in-2026", "end": "2026-12-31T00:00:00Z", "tok_index": 0, "opened": 1784257536}, "67270379508707453579822352759295200887632344396882723020536262528886991089078": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x7d1e9975d9899e6f8514f3714b03a22114d6d03803882f390d0e7a5357e66e7e", "title": "Will SpaceX Starship Flight Test 13 launch by July 16?", "outcome": "Yes", "event": "spacex-starship-flight-test-13", "end": "2026-07-16T00:00:00Z", "tok_index": 0, "opened": 1784257674}, "112530613306716166624306785625527243000936556874970549731102935274624880614808": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x8e2324ee0e0b2e3f550ed80cc7d5f0300043bcb03350f81c560f0fb538f76af8", "title": "Will the highest temperature in Austin be 75\u00b0F or below on July 16?", "outcome": "Yes", "event": "highest-temperature-in-austin-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "670318695093788286770480440596440124473469459020377953294919928322360769304": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xd09ee55ab5e94cc683db3d754563a326e5e4186c42419128f6a283159abb0600", "title": "Will the lowest temperature in Miami be 90\u00b0F or higher on July 16?", "outcome": "Yes", "event": "lowest-temperature-in-miami-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "41890243833972194654560034930220120500393044272585435142490430815390166569328": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xd698c3c53760a9033c5c10f088150acbdf04c9342c863dbd687e2667fc313bfe", "title": "Will the highest temperature in Denver be between 98-99\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-denver-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "95737904431779569676576297188097388550423295707795662504699790788164073261113": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xa7d9092c08e84962fdbb846377b59a09c93949accae055377040feef750b8591", "title": "Will the highest temperature in Seattle be between 68-69\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-seattle-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "108827586676863634986160975066769755770958032278021173591928361262685472235476": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x2f2435da03ad828298353971755d3a6efbbe6cf73f3f5acf6a45986628955f17", "title": "Will the highest temperature in Miami be between 102-103\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-miami-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "40484969606304977313516258463960677557112896676385917551257832992338373395909": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x4ca0ddc8c816e5840c007a1892a8dcbae6b2a1869b10bcf36a7619fe75c78e88", "title": "Will the highest temperature in Panama City be 32\u00b0C on July 16?", "outcome": "Yes", "event": "highest-temperature-in-panama-city-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "84776563282316625801986456207300733163917012868680022547211735104037218203714": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x027ff098a8ba6c8cc9f1710e6fec504098e7a2c1ece1eb12ca208b4849d7542b", "title": "Will the highest temperature in San Francisco be between 68-69\u00b0F on July 16?", "outcome": "No", "event": "highest-temperature-in-san-francisco-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 1, "opened": 1784257674}, "29347276364974731963385024309120732757112983303839511905461040930236071572317": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x0f24e1ced6073138511ce9ed2759df6c4fde4c9caaacd44ee0a92ca121d4c212", "title": "Will the lowest temperature in New York City be between 72-73\u00b0F on July 16?", "outcome": "Yes", "event": "lowest-temperature-in-nyc-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "51262374926903001932468671028221713571892463560945941801282501273513087284674": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xf4afbc1ec25a9e95b7571cdc36fc6b4d5e47465c31700c33a24772244bf74dc1", "title": "Will the highest temperature in New York City be 87\u00b0F or below on July 16?", "outcome": "Yes", "event": "highest-temperature-in-nyc-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "25239250531321775957539227586259572323063933935163514081809767561933575671111": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xa94436274f5485f916e5468b569fee86002328ece67dcdfffac0a3809fff5036", "title": "Will the highest temperature in Buenos Aires be 17\u00b0C on July 16?", "outcome": "Yes", "event": "highest-temperature-in-buenos-aires-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "22754187563426351457864708727605642757046404804856337280235128783120898225547": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xc01d0d71b0fce224a23377caf6354053d2521e28a8eadb8394a2c958c494eb6d", "title": "Will the highest temperature in Dallas be between 94-95\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-dallas-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "60618958870658530867242758388795004561381687504211666692788906933769701638415": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x05f3aa61f9acbdf1d4dee889c975e1f9ae107af2640e809293ccb8910098e9ec", "title": "Will the highest temperature in Houston be between 94-95\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-houston-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "60580767462908003202521160373814734051541521270964650920813469375623674696956": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x93c38270e5d17c5a77b8ef389f69bc1fa04bf6e0338e70d38f3374aa5cd863ad", "title": "Will the highest temperature in Toronto be 36\u00b0C on July 16?", "outcome": "Yes", "event": "highest-temperature-in-toronto-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "29856550469832073692064803847822653016342885271929267791592525678769760700642": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x04f2a895bab7011674679dff6088b7adb53883620e43eb3cde4990a4e19152f9", "title": "Will the highest temperature in Atlanta be between 96-97\u00b0F on July 16?", "outcome": "Yes", "event": "highest-temperature-in-atlanta-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "51846560519512929162317725669327948765820777581623655178503251026299837013346": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x95542edfcf09449252ccd70f3bb9ccae2bd49c9cbd03328fe446db6a51a79411", "title": "Will the highest temperature in Chicago be 108\u00b0F or higher on July 16?", "outcome": "Yes", "event": "highest-temperature-in-chicago-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "16892108417177785233910824250110050108374072497266057215023603815415832076961": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0xda9a87a119a6bdbc2cebe22cde995975571d7577e1bd6f25410c7c9dbaeafe0b", "title": "Will the highest temperature in Mexico City be 21\u00b0C on July 16?", "outcome": "Yes", "event": "highest-temperature-in-mexico-city-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "113304036176992406252151057788661842368048044822407179185609010385077607446716": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x3f2ad3a50111be1b790c74a3aa109f31900f262b30260ad12e139f852826b7eb", "title": "Will the highest temperature in Los Angeles be between 82-83\u00b0F on July 16?", "outcome": "No", "event": "highest-temperature-in-los-angeles-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 1, "opened": 1784257674}, "114906998005567740062379006506757539789607609377950129848657565529321642457520": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x4b5657a96ee17b449d6aa1a6b1864c079f4f0a5ce6cc6e4b0d719104ec18abc8", "title": "Will the highest temperature in Sao Paulo be 28\u00b0C on July 16?", "outcome": "Yes", "event": "highest-temperature-in-sao-paulo-on-july-16-2026", "end": "2026-07-16T12:00:00Z", "tok_index": 0, "opened": 1784257674}, "58017463736482610065171386990548333051004054628869782709973003023159082007681": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x8b27d810829f963849458c068e5ff6a697514a0273a6bf0e6306402bb160c1a7", "title": "Botafogo FR vs. Santos FC: Both Teams to Score in Second Half", "outcome": "No", "event": "bra-bot-san-2026-07-16", "end": "2026-07-16T22:30:00Z", "tok_index": 1, "opened": 1784257674}, "15390009074522870667148660165062730555236796460163940026652310740380869259440": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x41825507445c9ded057a062cb6c9a55c378400e8877d14f04fd9e9300b7a4eda", "title": "Will CR Brasil vs. Clube N\u00e1utico Capibaribe end in a draw?", "outcome": "Yes", "event": "bra2-crb-nau-2026-07-16", "end": "2026-07-16T23:00:00Z", "tok_index": 0, "opened": 1784257674}, "6390292418477923671015324158056070535023707144836057612462312618380536361710": {"shares": 125.0, "cost": 1.0, "fee": 0.0496, "price": 0.008, "cond": "0x39e654d796efa36551a916b983b596940b69e9c1285bf193cac60829ae655d14", "title": "Will Trump say \"Crooked\" during Speech to the Nation?", "outcome": "Yes", "event": "what-will-trump-say-during-the-speech-to-the-nation-20260713200621418", "end": "2026-07-16T23:59:00Z", "tok_index": 0, "opened": 1784257674}, "27992248566285722250207451571631985433667405172488328447455776588169729238911": {"shares": 50.0, "cost": 1.0, "fee": 0.049, "price": 0.02, "cond": "0x1145d829f2fa4c2994396a060e4b893158172eac3903e4bf321e28c2293603ba", "title": "Will Lyric Medeiros be evicted in Big Brother season 28 (Week 1)?", "outcome": "Yes", "event": "who-will-be-evicted-from-big-brother-week-1-20260710020428896", "end": "2026-07-16T23:59:00Z", "tok_index": 0, "opened": 1784257674}, "90402212796201292820992439163974818243468756690479945100638704540510089666133": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0x6762d95e690ffd2a065659530af5eaac2f68ef279044f5ac08996ecb6fb35990", "title": "Will Christopher John Brown win the 2026 Norfolk Police and Crime Commissioner b", "outcome": "Yes", "event": "norfolk-police-and-crime-commissioner-by-election-winner-20260702154145530", "end": "2026-07-16T23:59:00Z", "tok_index": 0, "opened": 1784257674}, "22779532518265431207930623944582312092826054206590222759621637519175542424824": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0x039b3c67c0550791cf524ca056ed1bdc7dd9a6279027aa26a1debd315fa2a647", "title": "Spread: Cangrejeros de Santurce (-3.5)", "outcome": "Cangrejeros de Santurce", "event": "bkbsn-can-cri-2026-07-16", "end": "2026-07-17T00:00:00Z", "tok_index": 0, "opened": 1784257674}, "41920127678793154931001634763019653359905479407099008135587603675879855203603": {"shares": 111.11111111111111, "cost": 1.0, "fee": 0.04955, "price": 0.009, "cond": "0x68c2c356404ef5650dd34155bae7504646eda3a6d860e5f848bc34fc56af6c6b", "title": "Spread: Leones de Ponce (-9.5)", "outcome": "Leones de Ponce", "event": "bkbsn-leo-atl-2026-07-16", "end": "2026-07-17T00:00:00Z", "tok_index": 0, "opened": 1784257674}, "102623997170607052328502977572291446032357640641101995688679962871454255972010": {"shares": 50.0, "cost": 1.0, "fee": 0.049, "price": 0.02, "cond": "0xda9fcfe15a8a3132eb7836193db3cc96ffbf0bdc45943de1e372adee6b0ef214", "title": "Exact Score: Chicago Fire FC 0 - 3 Vancouver Whitecaps FC?", "outcome": "Yes", "event": "mls-chi-vwh-2026-07-16", "end": "2026-07-17T00:30:00Z", "tok_index": 0, "opened": 1784257674}, "9346922233582986919029525981694074220837187281159717245848028631630516501435": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x94cea8551266e7923600c0f792021f55dd2f6fec6cd613bb83a1aba22c326040", "title": "St. Louis City SC to score first vs. Sporting Kansas City?", "outcome": "No", "event": "mls-stl-skc-2026-07-16", "end": "2026-07-17T00:30:00Z", "tok_index": 1, "opened": 1784257674}, "105174454143504295787911892416971339275463065080906818567252962655061970238332": {"shares": 100.0, "cost": 1.0, "fee": 0.0495, "price": 0.01, "cond": "0xc7ea651b7a52a42802a50b5de4b7994b5d4812c6a247b7467cc6706f888d2937", "title": "Map 1 Total Rounds: Over/Under 24.5", "outcome": "Over", "event": "cs2-dm2-strael-2026-07-16", "end": "2026-07-17T00:45:00Z", "tok_index": 0, "opened": 1784257674}, "39427388354114737168139623919863330297267487065887316018128781936470792293870": {"shares": 1000.0, "cost": 1.0, "fee": 0.04995, "price": 0.001, "cond": "0x5a58f700e3ce408fc8ce6dfd9001445e632699e6e5976c25d844d3cf3c9edade", "title": "Club Necaxa vs. Atlante FC: Club Necaxa O/U 0.5", "outcome": "Under", "event": "mex-nec-atla-2026-07-16", "end": "2026-07-17T01:00:00Z", "tok_index": 1, "opened": 1784257674}}, "resolved": [], "missed": [{"ts": 1784257536, "token": "77166477669007661974218999697956080000161736671391584414287437514245884953047", "mark": 0.009, "title": "Will Harvey Weinstein be sentenced to less than 5 years in p", "reason": "only $0.34 of asks inside the band (cap 0.018) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "8585617872562550075367684165842985213222082790621129799520234539666057750015", "mark": 0.0095, "title": "Will Harvey Weinstein be sentenced to between 5 and 10 years", "reason": "only $0.52 of asks inside the band (cap 0.019) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "43377185540092441472523885859099478235201860627294255832516299903130560463298", "mark": 0.0175, "title": "SCOTUS accepts sports event contract case by July 31, 2026? ", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257536, "token": "11046262311494533237971148351329185314005627894869626528589068956894902481233", "mark": 0.009, "title": "Will Trump endorse John Cornyn for TX-Sen by Nov 2 2026 ET?", "reason": "only $0.50 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "6122912536415539457721068960901205060237919057489564846781206253065694717085", "mark": 0.006, "title": "Will OpenAI\u2019s market cap be less than $500B at market close ", "reason": "only $0.60 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "36088399593046466421453063228085042771351246231742717370399696243183381174466", "mark": 0.004, "title": "Will OpenAI\u2019s market cap be between $500B and $750B at marke", "reason": "only $0.35 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "19470872781622450446330627562106312915240544924539183504885686468325701819521", "mark": 0.0155, "title": "Will OpenAI\u2019s market cap be between $1.25T and $1.5T at mark", "reason": "only $0.11 of asks inside the band (cap 0.020) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "34943144357771122375283559286014961426824813487508159555960762936802327664238", "mark": 0.0165, "title": "Will an independent win the Michigan governor race in 2026?", "reason": "best ask 0.030 above 0.02"}, {"ts": 1784257536, "token": "88799262678230165893255813616837100962595819984760588859765042402182443138810", "mark": 0.0135, "title": "Will the Democrats win the Montana Senate race in 2026?", "reason": "only $0.87 of asks inside the band (cap 0.015) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "110692470670299760609405767524469998656804613573367102042492015567399413436772", "mark": 0.017, "title": "Will the Democrats win the West Virginia Senate race in 2026", "reason": "best ask 0.030 above 0.02"}, {"ts": 1784257536, "token": "20310786951537091150920478212676759242565921145568245906943451694162568762258", "mark": 0.0005, "title": "Will Ann Diener win the Alaska Senate race in 2026?", "reason": "only $0.19 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "29311755935786363205680204536643787054260832125056777867606384726291200747800", "mark": 0.0005, "title": "Will Dustin Darden win the Alaska Senate race in 2026?", "reason": "only $0.48 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "59588004575158257289531312065982350985369269880352045258164216668046489178917", "mark": 0.0005, "title": "Will Richard Grayson win the Alaska Senate race in 2026?", "reason": "only $0.23 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "100716705141639838044649900187335811063814165386716787647982371091165872129354", "mark": 0.014, "title": "Will Trump sell 1k-2.5k Gold Cards in 2026?", "reason": "only $0.99 of asks inside the band (cap 0.016) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "102123833290224736028606807214973577470974985146136880562573223000412048646565", "mark": 0.0145, "title": "Will Trump sell 5k-10k Gold Cards in 2026?", "reason": "best ask 0.026 above 0.02"}, {"ts": 1784257536, "token": "73526021461448919237620759038630053400335751168274884385805823137989196442396", "mark": 0.0125, "title": "Will Trump deport 700-800k people?", "reason": "only $0.35 of asks inside the band (cap 0.015) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "81789521500280266765113820026695525210318239273352896075991600986444286981424", "mark": 0.009, "title": "Will Trump deport 800-900k people?", "reason": "only $0.12 of asks inside the band (cap 0.013) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "2847695154039373568218316257328060569725505735809227787319620249989402685546", "mark": 0.007, "title": "Will Trump deport 900k-1m people?", "reason": "only $0.09 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "95717495606189025389281691026253980708109877220776778945002590647274322292559", "mark": 0.02, "title": "Will Trump deport more than 1m people?", "reason": "best ask 0.027 above 0.02"}, {"ts": 1784257536, "token": "9031121756476308138278620655714675117226891086598426872187867679557279011054", "mark": 0.0165, "title": "Will Jo\u00e3o Bernardo Vieira win the 2025 Guinea-Bissau preside", "reason": "best ask 0.029 above 0.02"}, {"ts": 1784257536, "token": "4706383492393241107150557077060045707409276968391482929287854470032556330552", "mark": 0.011, "title": "Will Herculano Armando Bequinsa win the 2025 Guinea-Bissau p", "reason": "only $0.11 of asks inside the band (cap 0.017) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "35811821204623000762481194216798685807237033189176473614701130487526474301000", "mark": 0.0105, "title": "Brex IPO before 2027?", "reason": "only $0.42 of asks inside the band (cap 0.015) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "615094416514808605813829723293526632125831510977361379383548534617200266829", "mark": 0.0025, "title": "Will Larry Ellison be richest person on December 31?", "reason": "only $0.37 of asks inside the band (cap 0.003) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "18241160633130205209616350465780865909185289965882997691321004640467937174771", "mark": 0.0025, "title": "Will Mark Zuckerberg be richest person on December 31?", "reason": "only $0.18 of asks inside the band (cap 0.003) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "62230369692965391996816485777716459159940290554215775146510631449502461779830", "mark": 0.0035, "title": "Will Bernard Arnault be richest person on December 31?", "reason": "only $0.39 of asks inside the band (cap 0.004) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "111454197885902579123646318605428291459312517993863770329231378364775930615234", "mark": 0.004, "title": "Will Jeff Bezos be richest person on December 31?", "reason": "only $0.71 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "21700256477953461322829595595971259189286852519906289976553977571532870719897", "mark": 0.004, "title": "Will Jensen Huang be richest person on December 31?", "reason": "only $0.72 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "115055397260683461892027718934804755177371613204852263881954807501570063206911", "mark": 0.0115, "title": "Will Warren Buffett be richest person on December 31?", "reason": "only $0.14 of asks inside the band (cap 0.014) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "4016319186817811611012470647934537864070636218073137413331559045803427627332", "mark": 0.004, "title": "Will Steve Ballmer be richest person on December 31?", "reason": "only $0.00 of asks inside the band (cap 0.005) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "76199611355494823610049787982059397100238286589584562178205366623141259654052", "mark": 0.0055, "title": "Will Larry Page be richest person on December 31?", "reason": "only $0.17 of asks inside the band (cap 0.006) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "57362872515996779646330392792968364197447194546322339120726729263378672989286", "mark": 0.0125, "title": "Will the 10-year Treasury yield dip below 1.0% before 2027?", "reason": "only $0.47 of asks inside the band (cap 0.020) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "10247531971996300388004475803735459869393730823778021341229573450450736262648", "mark": 0.0115, "title": "Will Toy Story 5 have the best domestic opening weekend in 2", "reason": "only $0.98 of asks inside the band (cap 0.013) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "89122639280139951852974936554756184346358334790398350569653103427135919364268", "mark": 0.0075, "title": "Will 2026 be the fourth-hottest year on record?", "reason": "only $0.08 of asks inside the band (cap 0.008) \u2014 FAK no-match"}, {"ts": 1784257536, "token": "13077482279920101207310968124602583673569984432172021504617728683823467712777", "mark": 0.02, "title": "Will the US strike 13 countries in 2026?", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257536, "token": "43662629442676959677405804059038142071301669726653435926232668919830294739811", "mark": 0.0185, "title": "Will the US strike 14 countries in 2026?", "reason": "best ask 0.028 above 0.02"}, {"ts": 1784257674, "token": "35294451940845714528598835291538742373970398061582172636449036770601364185936", "mark": 0.0105, "title": "Will the lowest temperature in New York City be between 74-7", "reason": "only $0.65 of asks inside the band (cap 0.020) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "81543015770185864041270447278861452252436273448298595780169777501945035369443", "mark": 0.0005, "title": "Will the highest temperature in Mexico City be 27\u00b0C on July ", "reason": "only $0.01 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "83153288764757894613427374613249150810596498232626184389437330022635829294593", "mark": 0.005, "title": "Ferencv\u00e1rosi TC vs. FK Vojvodina Novi Sad: O/U 7.5 Total Cor", "reason": "only $0.06 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "14845366405948420244165913577791267890808856077865513919346301995553740398815", "mark": 0.0005, "title": "Will Csquare's market cap be between $3.5B and $4B at market", "reason": "only $0.29 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "80402222009104460386666606346233354031127252521671708795369722015888639260566", "mark": 0.0005, "title": "Exact Score: Botafogo FR 1 - 3 Santos FC?", "reason": "book fetch failed"}, {"ts": 1784257674, "token": "79201910509476651531160064788019644512313436173591815266061913899050677084145", "mark": 0.0005, "title": "Botafogo FR vs. Santos FC: 1st Half O/U 2.5", "reason": "book fetch failed"}, {"ts": 1784257674, "token": "14333746604194430020500398947469076839435740803390369576285454199202759611203", "mark": 0.012, "title": "Will the next Claude Opus model be released by July 16, 2026", "reason": "best ask 0.024 above 0.02"}, {"ts": 1784257674, "token": "19773381181544894683699963136254163800712793625083555712038661280931305071097", "mark": 0.0085, "title": "Will Angela Murray be evicted in Big Brother season 28 (Week", "reason": "only $0.59 of asks inside the band (cap 0.018) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "3184770255487190240811631801497476570417446683428862154089297834224195403372", "mark": 0.0195, "title": "Iran successfully targets shipping on July 16?", "reason": "best ask 0.029 above 0.02"}, {"ts": 1784257674, "token": "103546568571553702551534378585018591781132269586367910119837290337034611353693", "mark": 0.0005, "title": "Will Rick Devens be evicted in Big Brother season 28 (Week 1", "reason": "only $0.03 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "67526255029238413731735106771768975826480440542342973154508504694890933180834", "mark": 0.002, "title": "Will Trump say \"Ukraine\" during Speech to the Nation?", "reason": "only $0.60 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "32872841843403360158632460069346077510890341600074181899387643709303393822711", "mark": 0.0075, "title": "Will Marcus Howard Pearcey win the 2026 Norfolk Police and C", "reason": "only $0.27 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "35877722247871110717070436061913219079639637153039173026036629848121814477309", "mark": 0.0005, "title": "Will Trump say \"Make America Great Again\" during Speech to t", "reason": "only $0.41 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "24286114396498127185982331571368265046865602278024194384567054847571177330561", "mark": 0.0035, "title": "Will LaTrice Verrett be evicted in Big Brother season 28 (We", "reason": "only $0.14 of asks inside the band (cap 0.007) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "110514697460843446088229488922853007354658192911342513364708893923724867950737", "mark": 0.0005, "title": "Will Melody Morris be evicted in Big Brother season 28 (Week", "reason": "only $0.01 of asks inside the band (cap 0.001) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "63680745558188170810413604279234223206952049340782418852907487830280169998635", "mark": 0.002, "title": "Will Trump accuse Israel of election interference by July 16", "reason": "only $0.32 of asks inside the band (cap 0.004) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "115479490406812957357402289564415387633790978066890016915369458408240078095240", "mark": 0.003, "title": "Will Trump accuse China of election interference by July 16?", "reason": "only $0.90 of asks inside the band (cap 0.003) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "49255498632090320592056403338086150853791238443573686986004780373400932082977", "mark": 0.011, "title": "Will the next UK Prime Minister be appointed by July 16?", "reason": "best ask 0.022 above 0.02"}, {"ts": 1784257674, "token": "109842881227018115836313823923057111558489966563921987514815622829448596424266", "mark": 0.0125, "title": "Will Trump accuse Venezuela of election interference by July", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257674, "token": "100502914627030931832570591960286253126495000571396845988794133369741114597338", "mark": 0.0045, "title": "Will Trump accuse Mexico of election interference by July 16", "reason": "only $0.42 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "56359981143449141852315844582002358957410168652231835147015867845933172888959", "mark": 0.005, "title": "Will Trump accuse Germany of election interference by July 1", "reason": "only $0.40 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "29649709652944952249966890920683875016824692156389793805392538709348711539675", "mark": 0.0105, "title": "Will Trump accuse Ukraine of election interference by July 1", "reason": "best ask 0.021 above 0.02"}, {"ts": 1784257674, "token": "79070547476442766501679259848380975409232905679828115802401698204016632621233", "mark": 0.015, "title": "Will the White House call a full lid by 6:30 PM on July 16?", "reason": "best ask 0.029 above 0.02"}, {"ts": 1784257674, "token": "14858009808573710430724695800183227465957429840212288354603999098381184071486", "mark": 0.0015, "title": "Will Phoenix Flames finish in 1st place at the Major League ", "reason": "only $0.03 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "71893732068584209502041746528636528203452155758431635915115335720493703706961", "mark": 0.0055, "title": "Will California Black Bears finish in 1st place at the Major", "reason": "only $0.05 of asks inside the band (cap 0.011) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "51375171494444400785393128082485261717908623023822992393526675913268176991041", "mark": 0.0015, "title": "Will Florida Smash finish in 1st place at the Major League P", "reason": "only $0.01 of asks inside the band (cap 0.002) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "100586098883688785424696230383501088708762512365219837895089102560519223800436", "mark": 0.0045, "title": "Leones de Ponce vs. Atleticos de San German: O/U 173.5", "reason": "only $0.69 of asks inside the band (cap 0.009) \u2014 FAK no-match"}, {"ts": 1784257674, "token": "21950996217315394363057865275498687665595978521049132343965223921555142728187", "mark": 0.0115, "title": "Exact Score: Seattle Sounders FC 3 - 3 Portland Timbers?", "reason": "best ask 0.022 above 0.02"}, {"ts": 1784257674, "token": "42105819687471335686363939168519314903545511701524605443993573137769554418650", "mark": 0.016, "title": "Exact Score: Seattle Sounders FC 2 - 3 Portland Timbers?", "reason": "best ask 0.036 above 0.02"}, {"ts": 1784257674, "token": "31154226915777278418219344800686477424981429215146927068074861715899348995957", "mark": 0.016, "title": "Exact Score: Seattle Sounders FC 1 - 3 Portland Timbers?", "reason": "best ask 0.043 above 0.02"}], "attempted": {"77166477669007661974218999697956080000161736671391584414287437514245884953047": 1784257536.9702668, "8585617872562550075367684165842985213222082790621129799520234539666057750015": 1784257536.9702668, "15540133404064485946536607974212890170021691204987131841181394872998839987451": 1784257536.9702668, "90227223115596293448966158151606153337847900483048338623540402385929720677904": 1784257536.9702668, "35272507273162958827997790327967872292415567859334925862043618606081750011897": 1784257536.9702668, "3039641309958397001906153616677074061284510636204155275446291716739429262374": 1784257536.9702668, "70997927349469817841862065582625658840347600365813612622959588796331622340305": 1784257536.9702668, "43377185540092441472523885859099478235201860627294255832516299903130560463298": 1784257536.9702668, "40774280038971372724174457035121000748756395696333205645831548131363721049199": 1784257536.9702668, "11046262311494533237971148351329185314005627894869626528589068956894902481233": 1784257536.9702668, "28227838360096074788232992585368970461718254845788738931649369286727917170476": 1784257536.9702668, "52634616068523389389514492087655237014427439869589807217055529923225131895030": 1784257536.9702668, "46016408901619903295207375832539898750164493226855442884509133805980187874445": 1784257536.9702668, "6122912536415539457721068960901205060237919057489564846781206253065694717085": 1784257536.9702668, "36088399593046466421453063228085042771351246231742717370399696243183381174466": 1784257536.9702668, "19470872781622450446330627562106312915240544924539183504885686468325701819521": 1784257536.9702668, "28452090262595806306683841543702974671789939255165753137157118490078999198778": 1784257536.9702668, "95835705062472305459663741402900736177330733688944910993896545106260819635212": 1784257536.9702668, "97079880955117270083666806029014143818118511996487378321036003805764596740938": 1784257536.9702668, "34943144357771122375283559286014961426824813487508159555960762936802327664238": 1784257536.9702668, "88799262678230165893255813616837100962595819984760588859765042402182443138810": 1784257536.9702668, "110692470670299760609405767524469998656804613573367102042492015567399413436772": 1784257536.9702668, "55269299240433422758148290868724152324629587438760275683104577693660207425448": 1784257536.9702668, "20310786951537091150920478212676759242565921145568245906943451694162568762258": 1784257536.9702668, "29311755935786363205680204536643787054260832125056777867606384726291200747800": 1784257536.9702668, "59588004575158257289531312065982350985369269880352045258164216668046489178917": 1784257536.9702668, "112101678667388918252758604047145833695065509511438805706635695881082938013669": 1784257536.9702668, "2514203837854735205913781359327052377275050226163878960745268210971566855346": 1784257536.9702668, "100716705141639838044649900187335811063814165386716787647982371091165872129354": 1784257536.9702668, "102123833290224736028606807214973577470974985146136880562573223000412048646565": 1784257536.9702668, "58858731796442679222989272055454043286056057669744610936854497026401512278651": 1784257536.9702668, "2638212763635765664638931184596338750226895714451963915771516616454156509244": 1784257536.9702668, "73526021461448919237620759038630053400335751168274884385805823137989196442396": 1784257536.9702668, "81789521500280266765113820026695525210318239273352896075991600986444286981424": 1784257536.9702668, "2847695154039373568218316257328060569725505735809227787319620249989402685546": 1784257536.9702668, "95717495606189025389281691026253980708109877220776778945002590647274322292559": 1784257536.9702668, "26880262286353559461109525615512763357587866035194597494489295218957286731245": 1784257536.9702668, "9031121756476308138278620655714675117226891086598426872187867679557279011054": 1784257536.9702668, "4706383492393241107150557077060045707409276968391482929287854470032556330552": 1784257536.9702668, "391670908629060088409431896998377161667071768186645889213963384874929102170": 1784257536.9702668, "35811821204623000762481194216798685807237033189176473614701130487526474301000": 1784257536.9702668, "615094416514808605813829723293526632125831510977361379383548534617200266829": 1784257536.9702668, "18241160633130205209616350465780865909185289965882997691321004640467937174771": 1784257536.9702668, "62230369692965391996816485777716459159940290554215775146510631449502461779830": 1784257536.9702668, "111454197885902579123646318605428291459312517993863770329231378364775930615234": 1784257536.9702668, "21700256477953461322829595595971259189286852519906289976553977571532870719897": 1784257536.9702668, "115055397260683461892027718934804755177371613204852263881954807501570063206911": 1784257536.9702668, "4016319186817811611012470647934537864070636218073137413331559045803427627332": 1784257536.9702668, "76199611355494823610049787982059397100238286589584562178205366623141259654052": 1784257536.9702668, "50627054342292524063405225334567943340537585485453009001079628591959212607784": 1784257536.9702668, "57362872515996779646330392792968364197447194546322339120726729263378672989286": 1784257536.9702668, "3778701297142172054009835709694047837281608259621414725374943993931338899258": 1784257536.9702668, "81662326158871781857247725348568394697379926716334270967994039975048021832777": 1784257536.9702668, "10247531971996300388004475803735459869393730823778021341229573450450736262648": 1784257536.9702668, "78811978781022187641776289375780683316166629912443452648985718823109953148781": 1784257536.9702668, "89122639280139951852974936554756184346358334790398350569653103427135919364268": 1784257536.9702668, "36385708241103656881636928091267439785598872725658076323572114247897288109684": 1784257536.9702668, "103149043231796752807018971660605675992799889771393087586255256574936406270971": 1784257536.9702668, "13077482279920101207310968124602583673569984432172021504617728683823467712777": 1784257536.9702668, "43662629442676959677405804059038142071301669726653435926232668919830294739811": 1784257536.9702668, "67270379508707453579822352759295200887632344396882723020536262528886991089078": 1784257674.8207412, "112530613306716166624306785625527243000936556874970549731102935274624880614808": 1784257674.8207412, "670318695093788286770480440596440124473469459020377953294919928322360769304": 1784257674.8207412, "35294451940845714528598835291538742373970398061582172636449036770601364185936": 1784257674.8207412, "41890243833972194654560034930220120500393044272585435142490430815390166569328": 1784257674.8207412, "95737904431779569676576297188097388550423295707795662504699790788164073261113": 1784257674.8207412, "108827586676863634986160975066769755770958032278021173591928361262685472235476": 1784257674.8207412, "81543015770185864041270447278861452252436273448298595780169777501945035369443": 1784257674.8207412, "40484969606304977313516258463960677557112896676385917551257832992338373395909": 1784257674.8207412, "84776563282316625801986456207300733163917012868680022547211735104037218203714": 1784257674.8207412, "29347276364974731963385024309120732757112983303839511905461040930236071572317": 1784257674.8207412, "51262374926903001932468671028221713571892463560945941801282501273513087284674": 1784257674.8207412, "25239250531321775957539227586259572323063933935163514081809767561933575671111": 1784257674.8207412, "22754187563426351457864708727605642757046404804856337280235128783120898225547": 1784257674.8207412, "60618958870658530867242758388795004561381687504211666692788906933769701638415": 1784257674.8207412, "60580767462908003202521160373814734051541521270964650920813469375623674696956": 1784257674.8207412, "29856550469832073692064803847822653016342885271929267791592525678769760700642": 1784257674.8207412, "51846560519512929162317725669327948765820777581623655178503251026299837013346": 1784257674.8207412, "16892108417177785233910824250110050108374072497266057215023603815415832076961": 1784257674.8207412, "113304036176992406252151057788661842368048044822407179185609010385077607446716": 1784257674.8207412, "114906998005567740062379006506757539789607609377950129848657565529321642457520": 1784257674.8207412, "83153288764757894613427374613249150810596498232626184389437330022635829294593": 1784257674.8207412, "14845366405948420244165913577791267890808856077865513919346301995553740398815": 1784257674.8207412, "80402222009104460386666606346233354031127252521671708795369722015888639260566": 1784257674.8207412, "79201910509476651531160064788019644512313436173591815266061913899050677084145": 1784257674.8207412, "58017463736482610065171386990548333051004054628869782709973003023159082007681": 1784257674.8207412, "15390009074522870667148660165062730555236796460163940026652310740380869259440": 1784257674.8207412, "14333746604194430020500398947469076839435740803390369576285454199202759611203": 1784257674.8207412, "19773381181544894683699963136254163800712793625083555712038661280931305071097": 1784257674.8207412, "3184770255487190240811631801497476570417446683428862154089297834224195403372": 1784257674.8207412, "103546568571553702551534378585018591781132269586367910119837290337034611353693": 1784257674.8207412, "67526255029238413731735106771768975826480440542342973154508504694890933180834": 1784257674.8207412, "32872841843403360158632460069346077510890341600074181899387643709303393822711": 1784257674.8207412, "35877722247871110717070436061913219079639637153039173026036629848121814477309": 1784257674.8207412, "24286114396498127185982331571368265046865602278024194384567054847571177330561": 1784257674.8207412, "6390292418477923671015324158056070535023707144836057612462312618380536361710": 1784257674.8207412, "110514697460843446088229488922853007354658192911342513364708893923724867950737": 1784257674.8207412, "27992248566285722250207451571631985433667405172488328447455776588169729238911": 1784257674.8207412, "90402212796201292820992439163974818243468756690479945100638704540510089666133": 1784257674.8207412, "63680745558188170810413604279234223206952049340782418852907487830280169998635": 1784257674.8207412, "115479490406812957357402289564415387633790978066890016915369458408240078095240": 1784257674.8207412, "49255498632090320592056403338086150853791238443573686986004780373400932082977": 1784257674.8207412, "109842881227018115836313823923057111558489966563921987514815622829448596424266": 1784257674.8207412, "100502914627030931832570591960286253126495000571396845988794133369741114597338": 1784257674.8207412, "56359981143449141852315844582002358957410168652231835147015867845933172888959": 1784257674.8207412, "29649709652944952249966890920683875016824692156389793805392538709348711539675": 1784257674.8207412, "79070547476442766501679259848380975409232905679828115802401698204016632621233": 1784257674.8207412, "22779532518265431207930623944582312092826054206590222759621637519175542424824": 1784257674.8207412, "14858009808573710430724695800183227465957429840212288354603999098381184071486": 1784257674.8207412, "71893732068584209502041746528636528203452155758431635915115335720493703706961": 1784257674.8207412, "51375171494444400785393128082485261717908623023822992393526675913268176991041": 1784257674.8207412, "100586098883688785424696230383501088708762512365219837895089102560519223800436": 1784257674.8207412, "41920127678793154931001634763019653359905479407099008135587603675879855203603": 1784257674.8207412, "102623997170607052328502977572291446032357640641101995688679962871454255972010": 1784257674.8207412, "9346922233582986919029525981694074220837187281159717245848028631630516501435": 1784257674.8207412, "105174454143504295787911892416971339275463065080906818567252962655061970238332": 1784257674.8207412, "39427388354114737168139623919863330297267487065887316018128781936470792293870": 1784257674.8207412, "21950996217315394363057865275498687665595978521049132343965223921555142728187": 1784257674.8207412, "42105819687471335686363939168519314903545511701524605443993573137769554418650": 1784257674.8207412, "31154226915777278418219344800686477424981429215146927068074861715899348995957": 1784257674.8207412}, "stats": {"attempts": 120, "fills": 55, "misses": 65, "resolved": 0, "wins": 0, "refunds": 0, "losses": 0, "staked": 55.0, "returned": 0.0, "fees": 2.731899999999998}, "started": 1784257497} \ No newline at end of file