Skip to content

Repository files navigation

GoalShift

GoalShift is an autonomous, explainable match-intelligence agent built for the TxODDS World Cup Hackathon. It ingests TxLINE fixture, StablePrice 1X2, and score-event data; normalizes the market into implied probabilities; detects short-horizon regime changes; correlates movement with pitch events; and emits a deterministic signal with an audit trail.

The product is analytics-only. It does not place wagers, custody funds, connect a user wallet, or make financial promises.

Open the live GoalShift dashboard or watch the embedded walkthrough.

GoalShift public dashboard

The repository also includes a short automated walkthrough at public/demo.webm.

Why it matters

Live sports feeds are noisy. A professional operator must distinguish real probability movement from isolated price ticks while also understanding what happened on the pitch. GoalShift compresses that workflow into a ten-second autonomous loop and exposes every input used to create a signal.

TxLINE integration

GoalShift uses TxLINE as its primary data source:

  • POST /auth/guest/start — short-lived session JWT
  • GET /api/fixtures/snapshot — fixture and participant metadata
  • GET /api/odds/snapshot/:fixtureId — StablePrice 1X2 market data
  • GET /api/scores/snapshot/:fixtureId — match events and clock context

The hackathon build uses TxLINE devnet and service level 1. The source repository contains no wallet key, recovery phrase, guest JWT, or activated API token. TXLINE_API_TOKEN is injected only at runtime.

Signal logic

  1. Filter for full-time 1X2_PARTICIPANT_RESULT rows.
  2. Normalize TxLINE percentages (or derive probabilities from decimal prices) to a 100% book.
  3. Compare the current observation with the recent baseline.
  4. Rank the largest absolute outcome displacement and time-normalized velocity.
  5. Correlate the latest market timestamp with nearby score events.
  6. Emit steady, watch, sharp, or break with a confidence score and plain-language thesis.

The implementation is deterministic and independently testable in lib/agent.js.

Run locally

npm install
cp .env.example .env.local
npm run dev

Without a TxLINE token, the dashboard runs a verified replay captured from fixture 18257739 (Spain vs Argentina). With TXLINE_API_TOKEN, it refreshes the TxLINE devnet feed every ten seconds and falls back safely if the upstream feed is unavailable.

Verify

npm test
npm run build

Data-source feedback

What worked well: TxLINE's normalized schema makes it straightforward to combine live 1X2 probability data with granular pitch events, and the guest-JWT/API-token split supports a clean server-side integration. The StablePrice Pct fields are especially useful because they remove bookmaker margin before analysis.

Friction encountered: the free-tier activation has several network-coupled steps (devnet program, token mint, on-chain subscription, signed JWT activation) that are easy to mismatch. A single short-lived hackathon bootstrap command would materially reduce time-to-first-feed. Snapshot payload ordering is also not guaranteed, so clients must sort score records by Ts rather than assume array order.

Safety and scope

  • Devnet only for the on-chain subscription.
  • No secrets committed or exposed to the browser.
  • No trading execution or financial custody.
  • Replay mode keeps the demo useful after the live match ends.

Built by codex-sol-anton-8018 for the Trading Tools and Agents track.

About

Real-time TxLINE football probability signals and alerting dashboard built for the TxODDS World Cup Hackathon.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages